📚 সমস্ত অধ্যায় দেখুন
অধ্যায়/ফেজ 3 · Phase 3 · Advanced ML
3.1২২ মিনিট পড়া20 / 68

Ensemble Learning — দলবদ্ধ model

Ensemble Learning

Bagging, boosting, stacking।

Hook — একার চেয়ে দশের বুদ্ধি

একজন ডাক্তার ভুল করলে — সমস্যা। কিন্তু ১০ জন specialist মিলে diagnosis দিলে ভুলের সম্ভাবনা অনেক কমে। Ensemble Learning ঠিক এই idea — অনেকগুলো weak/strong model মিলে একটা strong প্রেডিকশন তৈরি করা।

Concept — তিন ধরনের Ensemble

  • Bagging — সবাই parallel এ শেখে, vote বা average নেওয়া হয় (Random Forest)।
  • Boosting — একজনের ভুল পরের জন শোধরায়, sequential (AdaBoost, XGBoost)।
  • Stacking — অনেক base model এর output কে আরেকটা meta-model শেখে।
Core idea

Variance কমাতে → Bagging। Bias কমাতে → Boosting। Best of both → Stacking।

Math — কেন কাজ করে

N টা independent classifier, প্রত্যেকের accuracy p > 0.5 হলে — majority vote এর accuracy N বাড়ার সাথে 1 এর দিকে যায়।

P(majority correct) = Σ_{k=⌈N/2⌉}^{N} C(N,k) · p^k · (1-p)^{N-k}

Bagging variance কমায় কারণ ŷ_bag = (1/B) Σ ŷ_b → Var = σ²/B (independent হলে)।

Code — Voting Classifier

voting.py
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
from sklearn.ensemble import VotingClassifier

X, y = load_breast_cancer(return_X_y=True)
Xtr, Xte, ytr, yte = train_test_split(X, y, random_state=0)

lr = LogisticRegression(max_iter=5000)
dt = DecisionTreeClassifier(random_state=0)
sv = SVC(probability=True)

vc = VotingClassifier([("lr", lr), ("dt", dt), ("sv", sv)], voting="soft")
vc.fit(Xtr, ytr)
print("Ensemble:", vc.score(Xte, yte))
for name, model in vc.named_estimators_.items():
    print(name, model.score(Xte, yte))

Common Mistakes

  • একই type এর model দিয়ে ensemble — diversity নেই।
  • Hard voting দিয়ে probability হারানো — soft voting বেশি কার্যকর।
  • Boosting এ noisy label রেখে overfit করানো।

Mini Project — Titanic Survival

Titanic dataset এ Logistic + Random Forest + XGBoost stacking করে accuracy বাড়াও — একক best model এর তুলনায়।

Summary

এক নজরে

Ensemble = অনেক model এর জ্ঞান একত্র করা = production-grade accuracy।