মেশিন লার্নিং প্রজেক্টের মাধ্যমে আপনি বাস্তব সমস্যার সমাধান করতে পারেন। এখানে দুটি উদাহরণ দেওয়া হলো: একটি Classification সমস্যা এবং একটি Regression সমস্যা।
১. Classification Problem: ইমেইল স্প্যাম ডিটেকশন
Goal: একটি মেশিন লার্নিং মডেল তৈরি করা, যা ইমেইলগুলিকে স্প্যাম (Spam) বা নন-স্প্যাম (Non-Spam) শ্রেণীতে বিভক্ত করবে।
Steps:
- ডেটাসেট:
- আমাদের ডেটাসেটটি ইমেইলসের বিষয়বস্তু এবং ট্যাগ সহ হবে (স্প্যাম বা নন-স্প্যাম)।
sklearn.datasets.fetch_20newsgroupsবা Enron dataset ব্যবহার করা যেতে পারে।
- ডেটা প্রক্রিয়াকরণ:
- টেক্সট ডেটার জন্য CountVectorizer বা TF-IDF ব্যবহার করে ফিচার তৈরি করা হবে।
- শব্দের গতি এবং প্রাসঙ্গিকতা বুঝে, ফিচার নির্বাচিত করা হবে।
- মডেল তৈরি:
- Naive Bayes বা Logistic Regression ক্লাসিফিকেশন অ্যালগরিদম ব্যবহার করা যেতে পারে।
- মডেলটি স্প্যাম এবং নন-স্প্যাম ইমেইল শনাক্ত করতে প্রশিক্ষিত হবে।
উদাহরণ কোড:
from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score, confusion_matrix
# ডেটাসেট লোড করা
newsgroups = fetch_20newsgroups(subset='train', categories=['rec.sport.baseball', 'soc.religion.christian'])
# ডেটাকে ট্রেনিং এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(newsgroups.data, newsgroups.target, test_size=0.3, random_state=42)
# CountVectorizer ব্যবহার করে টেক্সট ভেক্টরাইজেশন
vectorizer = CountVectorizer(stop_words='english')
X_train_vec = vectorizer.fit_transform(X_train)
X_test_vec = vectorizer.transform(X_test)
# Naive Bayes মডেল তৈরি করা
model = MultinomialNB()
model.fit(X_train_vec, y_train)
# মডেল মূল্যায়ন
y_pred = model.predict(X_test_vec)
accuracy = accuracy_score(y_test, y_pred)
cm = confusion_matrix(y_test, y_pred)
print("Accuracy:", accuracy)
print("Confusion Matrix:\n", cm)
২. Regression Problem: বাড়ির দাম পূর্বানুমান
Goal: একটি মেশিন লার্নিং মডেল তৈরি করা যা বাড়ির দাম (Price) পূর্বানুমান করতে সক্ষম হবে।
Steps:
- ডেটাসেট:
- এখানে একটি Boston Housing ডেটাসেট ব্যবহার করা যেতে পারে, যেখানে বিভিন্ন বৈশিষ্ট্য (ফিচার) থাকে যেমন বাড়ির সাইজ, অপরিচিত এলাকার অবস্থান, ইত্যাদি, এবং লক্ষ্য মান হল বাড়ির দাম।
- ডেটা প্রক্রিয়াকরণ:
- Feature Scaling (যেমন StandardScaler) ব্যবহার করা হবে যাতে মডেলটির প্রশিক্ষণ দ্রুত হয় এবং ভিন্ন স্কেলের বৈশিষ্ট্যগুলি সমান গুরুত্বে আনা যায়।
- মডেল তৈরি:
- Linear Regression বা Random Forest Regression ব্যবহার করা যেতে পারে।
- মডেলটি প্রশিক্ষণ পাবে এবং তারপর বাড়ির দাম পূর্বানুমান করবে।
উদাহরণ কোড:
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# Boston Housing ডেটাসেট লোড করা
boston = load_boston()
X = boston.data
y = boston.target
# ডেটাকে ট্রেনিং এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Feature Scaling (স্ট্যান্ডার্ডাইজেশন)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Linear Regression মডেল তৈরি করা
model = LinearRegression()
model.fit(X_train_scaled, y_train)
# মডেল মূল্যায়ন
y_pred = model.predict(X_test_scaled)
mse = mean_squared_error(y_test, y_pred)
rmse = mse ** 0.5
print("Root Mean Squared Error (RMSE):", rmse)
৩. প্রজেক্ট বিশ্লেষণ
Classification Example (ইমেইল স্প্যাম ডিটেকশন):
- মডেল: Naive Bayes
- মূল্যায়ন মেট্রিক্স: Accuracy, Precision, Recall, F1-Score, Confusion Matrix
- অফার: একটি শক্তিশালী টুল যা দ্রুত এবং কার্যকরভাবে স্প্যাম শনাক্ত করতে সক্ষম।
Regression Example (বাড়ির দাম পূর্বানুমান):
- মডেল: Linear Regression
- মূল্যায়ন মেট্রিক্স: RMSE (Root Mean Squared Error)
- অফার: মডেলটি ব্যবহার করে বাড়ির দাম নির্ধারণ করা সম্ভব, যা রিয়েল এস্টেট ক্ষেত্রে অত্যন্ত কার্যকরী।
সারাংশ:
- Classification এবং Regression হল মেশিন লার্নিং এর দুটি প্রধান সমস্যার ধরন।
- Classification সমস্যা গুলি শ্রেণীবিভাগের (যেমন স্প্যাম ডিটেকশন) জন্য ব্যবহৃত হয়, যেখানে আউটপুট একটি নির্দিষ্ট শ্রেণীতে (যেমন 0 বা 1, স্প্যাম বা নন-স্প্যাম) বিভক্ত হয়।
- Regression সমস্যা গুলি পূর্বানুমান (যেমন বাড়ির দাম, তাপমাত্রা) করার জন্য ব্যবহৃত হয়, যেখানে আউটপুট একটি ক্রমবর্ধমান সংখ্যা (যেমন 2000, 5.6) হয়।
- আপনি scikit-learn লাইব্রেরি ব্যবহার করে সহজেই এই ধরনের প্রজেক্ট তৈরি এবং বিশ্লেষণ করতে পারেন।
Content added By
Read more