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

Supervised Learning — শিক্ষকের নির্দেশে শেখা

Supervised Learning

Label দেওয়া data দিয়ে model কীভাবে শেখে।

Hook — শিক্ষকের সাথে শেখা

ছোটবেলায় আমরা ছবি দেখে শিখেছি — “এটা বিড়াল”, “এটা কুকুর”। শিক্ষক প্রতিটি ছবির পাশে label বলে দিয়েছেন। আস্তে আস্তে আমরা নিজেরাই চিনতে শুরু করেছি। Supervised Learning ঠিক এভাবেই কাজ করে — model কে input এবং সঠিক answer (label) দেওয়া হয়, সে pattern শিখে নেয়।

Concept — Input, Output, Mapping

Supervised Learning এ আমাদের কাছে থাকে labeled dataset — অর্থাৎ প্রতিটি input X এর সাথে সঠিক output y দেওয়া। Model এর কাজ এমন একটি function f খুঁজে বের করা যা X থেকে y predict করতে পারে।

Dataset: {(x₁, y₁), (x₂, y₂), …, (xₙ, yₙ)} → খোঁজা f: X → y

দুই ধরনের Supervised Learning

  • Regression — output সংখ্যা (continuous)। যেমন: বাড়ির দাম।
  • Classification — output category (discrete)। যেমন: spam/not spam।
চিনে নাও

Label আছে = Supervised। Label নেই = Unsupervised।

Math — Loss minimize করে শেখা

Model কীভাবে শেখে? প্রতি prediction এর সাথে actual এর difference — সেটাই loss। সব sample এর গড় loss কে minimize করার চেষ্টা।

L(θ) = (1/n) Σ ℓ(f(xᵢ; θ), yᵢ)

Regression এ ℓ = (ŷ − y)² (MSE)। Classification এ ℓ = cross-entropy। Optimization এর কাজ — এমন θ খোঁজা যাতে L সবচেয়ে কম হয়।

Real-world Examples

  • Email spam detection (Classification)।
  • House price prediction (Regression)।
  • Disease diagnosis from symptoms (Classification)।
  • Stock price forecasting (Regression)।
  • Face recognition (Classification)।

Workflow — শুরু থেকে শেষ

  • Labeled data সংগ্রহ।
  • Train/Test split।
  • Model নির্বাচন (Linear Regression, Decision Tree, ইত্যাদি)।
  • Train — loss minimize করা।
  • Test set এ evaluate — accuracy, MSE।
  • Deploy ও monitor।

Code — দুটি ছোট example

supervised_regression.py
from sklearn.linear_model import LinearRegression
import numpy as np

X = np.array([[1],[2],[3],[4],[5]])   # input
y = np.array([2, 4, 6, 8, 10])         # label

model = LinearRegression().fit(X, y)
print("Predict 6 ->", model.predict([[6]]))   # ~12
supervised_classification.py
from sklearn.linear_model import LogisticRegression
import numpy as np

# hours studied -> pass(1)/fail(0)
X = np.array([[1],[2],[3],[4],[5],[6],[7],[8]])
y = np.array([0, 0, 0, 1, 1, 1, 1, 1])

model = LogisticRegression().fit(X, y)
print("5 hours ->", model.predict([[5]]))
print("Probability ->", model.predict_proba([[5]]))

Common Mistakes

সাবধান

Labeled data এর quality খারাপ হলে — model শেখে ভুল pattern।

  • Imbalanced class (95% spam vs 5% non-spam) — model সব spam বলে দেয়, তবু 95% accuracy দেখায়।
  • Train data এ test data মিশে যাওয়া — leakage।
  • Label noise — ভুল label থাকলে model শিখবে ভুল।

Practice Tasks

  • Task 1: তোমার পরিচিত ৫টি ML application বের করো — কোনটা regression, কোনটা classification।
  • Task 2: উপরের দুটি code নিজে চালাও।
  • Task 3: y data বদলে non-linear করো, দেখো linear regression কেমন fail করে।

Mini Project — Pass/Fail Predictor

১০ জন বন্ধুর study hours ও pass/fail data নাও। Logistic Regression train করো। নিজের hours দিয়ে predict করো — তুমি pass করবে কিনা, এবং কত % probability তে।

Summary

এক নজরে

Supervised Learning = labeled data + loss minimization = future prediction।

  • Input X, Label y — দুটোই থাকে।
  • Regression = সংখ্যা; Classification = category।
  • Loss function minimize করেই শেখা।