📚 সমস্ত অধ্যায় দেখুন
অধ্যায়/ফেজ 1 · Phase 1 · Core ML
1.4১৫ মিনিট পড়া8 / 68

Classification — Category তে ভাগ করা

Classification

Spam/Not spam, Cat/Dog — category prediction।

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।