Hook — Spam নাকি Not Spam
প্রতিদিন তোমার Gmail হাজারো spam email আটকে দেয়। কীভাবে? প্রতিটি email কে দুটি category তে ভাগ করা হচ্ছে — spam / not spam। এটাই classification।
Concept — Discrete Output
Classification এ output একটি label/category। Binary (২টি class), Multi-class (অনেক class), Multi-label (একসাথে একাধিক label) — তিন ধরন।
- Binary — spam vs not spam।
- Multi-class — digit recognition (0–9)।
- Multi-label — একটি ছবিতে cat AND dog দুটোই থাকতে পারে।
Math — Probability ও Decision Boundary
Classification model সাধারণত প্রতিটি class এর probability দেয়। সর্বোচ্চ probability এর class কে বেছে নেওয়া হয়।
Sigmoid (binary)
σ(z) = 1 / (1 + e^(−z))
Cross-Entropy Loss
L = − Σ y · log(ŷ) + (1−y) · log(1−ŷ)
Real-world Metric
- Accuracy = (TP + TN) / Total।
- Precision = TP / (TP + FP) — “যা spam বলেছি, তার কতটা সত্যি spam”।
- Recall = TP / (TP + FN) — “সব spam এর কতটা ধরতে পেরেছি”।
- F1 = Precision ও Recall এর harmonic mean।
- ROC-AUC — threshold-independent।
Imbalanced data
Accuracy ভুল ছবি দেখায়। Precision-Recall, F1 দেখো।
Code — Logistic Regression Classifier
iris_classify.py
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, confusion_matrix
X, y = load_iris(return_X_y=True)
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.3, random_state=42)
model = LogisticRegression(max_iter=200).fit(Xtr, ytr)
pred = model.predict(Xte)
print(confusion_matrix(yte, pred))
print(classification_report(yte, pred))Common Mistakes
- Imbalanced class ignore — minority class এর Recall দেখা জরুরি।
- শুধু Accuracy দিয়ে compare করা।
- Threshold 0.5 কেই default ধরে নেওয়া — অনেক ক্ষেত্রে বদলানো লাগে।
Practice Tasks
- Task 1: Confusion matrix থেকে precision/recall হাতে হিসাব করো।
- Task 2: threshold 0.3, 0.5, 0.7 এ predict করে result তুলনা করো।
- Task 3: ROC curve plot করো (sklearn.metrics.roc_curve)।
Mini Project — Diabetes Predictor
Pima Indians Diabetes dataset নাও। Logistic Regression train করো এবং Precision, Recall, F1, ROC-AUC report করো। Medical context এ Recall কেন বেশি গুরুত্বপূর্ণ — ভাবো।
Summary
এক নজরে
Classification = category predict, metric = Accuracy/Precision/Recall/F1/AUC।