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 করতে পারে।
দুই ধরনের 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 করার চেষ্টা।
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
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]])) # ~12from 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 করেই শেখা।