یادگیری ترکیبی (Ensemble Learning)

آموزش روش‌های ترکیب مدل‌ها: Bagging، Boosting، Voting و معرفی XGBoost و LightGBM

Ensemble چیست؟

به‌جای یک مدل، چند مدل بسازیم و پیش‌بینی‌هایشان را ترکیب کنیم. مثل مشورت با چند متخصص به‌جای یک نفر!

۱. Bagging (ترکیب موازی)

مدل‌ها موازی و مستقل آموزش می‌بینند و رأی می‌گیرند:

۲. Boosting (ترکیب سری)

مدل‌ها پشت‌سرهم؛ هر مدل خطاهای مدل قبلی را تمرکز می‌کند:

  1. مدل ۱ آموزش می‌بیند؛ خطاها مشخص می‌شوند
  2. مدل ۲ روی نمونه‌های سخت (خطاها) وزن بیشتری می‌گذارد
  3. تکرار... و جمع وزن‌دار پیش‌بینی‌ها

۳. Voting (رأی‌گیری ساده)

from sklearn.ensemble import VotingClassifier

ensemble = VotingClassifier([
    ("lr", LogisticRegression()),
    ("knn", KNeighborsClassifier()),
    ("rf", RandomForestClassifier()),
], voting="soft")  # soft: میانگین احتمال‌ها

Bagging در مقابل Boosting

ویژگیBaggingBoosting
ساختارموازیسری
هدفکاهش واریانسکاهش بایاس
Overfittingمقاوم ✅ممکن است (تنظیم لازم)
سرعت آموزشموازی‌سازی‌پذیر ✅ترتیبی

XGBoost و LightGBM

پیاده‌سازی‌های قدرتمند و بهینه Gradient Boosting که در مسابقات Kaggle حاکم‌اند:

# نصب: pip install xgboost
from xgboost import XGBClassifier
model = XGBClassifier(n_estimators=100)
model.fit(X_train, y_train)
برای داده جدولی (tabular)، مدل‌های Boosting معمولاً بهترین دقت را دارند — حتی بهتر از شبکه‌های عصبی!

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.

ابزارهای مرتبط