Hook — Kaggle এর রাজা
২০১৫ এর পর প্রায় প্রতিটি tabular Kaggle competition এর top solution এ XGBoost বা LightGBM ছিল। কারণ — speed + accuracy + regularization এর perfect ব্যালান্স।
Concept — Gradient Boosted Trees
Boosting এ প্রতিটি নতুন tree আগের tree-গুলোর residual (ভুল) এর উপর fit হয়। Gradient Boosting এ residual = loss function এর negative gradient।
F_{m}(x) = F_{m-1}(x) + η · h_m(x), h_m ≈ −∂L/∂F_{m-1}
XGBoost বিশেষ কেন
Second-order Taylor expansion, L1/L2 regularization, sparse-aware split finding, parallel histogram।
XGBoost vs LightGBM vs CatBoost
- XGBoost — level-wise tree, stable, খুব robust।
- LightGBM — leaf-wise tree, দ্রুত, বড় dataset এর জন্য সেরা।
- CatBoost — categorical handling built-in, GPU-friendly।
Code — XGBoost on Tabular Data
xgb_demo.py
from xgboost import XGBClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
X, y = load_breast_cancer(return_X_y=True)
Xtr, Xte, ytr, yte = train_test_split(X, y, random_state=0)
model = XGBClassifier(
n_estimators=500, max_depth=4, learning_rate=0.05,
subsample=0.9, colsample_bytree=0.9,
reg_lambda=1.0, eval_metric="logloss"
)
model.fit(Xtr, ytr, eval_set=[(Xte, yte)], verbose=False)
print("Test acc:", model.score(Xte, yte))
import pandas as pd
imp = pd.Series(model.feature_importances_).sort_values(ascending=False).head(10)
print(imp)Important Hyperparameters
- n_estimators — কয়টা tree।
- max_depth / num_leaves — tree complexity।
- learning_rate — ছোট হলে বেশি tree দরকার।
- subsample, colsample_bytree — randomness, overfit কমায়।
- reg_alpha (L1), reg_lambda (L2) — regularization।
Common Mistakes
ভুল
early_stopping ছাড়া অনেক tree fit করে overfit করে ফেলা।
- Categorical কে integer code করে XGBoost এ দেওয়া — order ধরে নেয়।
- GPU ব্যবহার না করে বড় dataset এ ঘণ্টার পর ঘণ্টা train করা।
Mini Project — House Price Prediction
Kaggle House Prices dataset এ XGBoost regression train করো। RMSLE বের করো এবং feature importance দিয়ে top-10 driver খুঁজে বের করো।
Summary
এক নজরে
XGBoost/LightGBM = tabular ML এর default choice। Tuning + early stopping = winning recipe।