Gradient Boosting Prensibi
Boosting, zayif ogrenenleri ardisik ekleyerek guclu bir topluluk olusturma stratejisidir. Her yeni agac, onceki topluluk modelin tahmin hatalarini (pseudoresiduals) ogrenmeye odaklanir. Bu sekilde model adım adım iyilesir. XGBoost, kayip fonksiyonunun birinci ve ikinci turevlerini (gradient ve hessian) kullanarak hangi agaçın eklenmesi gerektigini cok daha hassas belirler.
XGBoost'un Fark Yaratan Ozellikleri
Duzenlilestirme: agac yaprak isimleri ve sayisi icin L1/L2 ceza terimleri overfitting'i azaltir. Sutun orneklemesi: her agac icin rastgele ozellik altkumesi secilir; cesitlilik artar. Agirlikli nicel veri: eksik degerler icin egitim sirasinda en iyi yol otomatik belirlenir. DART: dropout agaci, yuksek agirlıkli agaclarin baskinligini azaltmak icin dogrudan boosting uygular.
Hiperparametre Ayari
n_estimators: agac sayisi; daha fazlasi her zaman iyi degildir, erken durdurma (early stopping) ile optimize edilir. max_depth: agac derinligi; 3-10 araligı tipiktir; derin agaclar overfitting riskidir. learning_rate (eta): 0.01-0.3; kucuk deger daha saglam genelleme ancak daha fazla agac gerektirir. subsample ve colsample_bytree: gozlem ve ozellik orneklemesi orani. GridSearch, RandomSearch veya Optuna ile otomatik arama yapilabilir.
LightGBM ve CatBoost ile Karsilastirma
LightGBM, yaprak-bazli (leaf-wise) agac buyutme stratejisiyle buyuk veri kumelerinde cok daha hizlidir; bellegi verimli kullanir. CatBoost, kategorik degiskenleri one-hot encoding gerektirmeksizin target encoding benzeri bir yaklasimla isler. XGBoost ise en genis ekosisteme sahiptir: sklearn API uyumlulugu, SHAP entegrasyonu ve genis dil destegi.
🌲 XGBoost Hiperparametre Ayarlama Rehberi
- check_circle learning_rate (eta): 0.01-0.3; düşük değer daha iyi genelleme ama daha fazla ağaç gerektirir
- check_circle max_depth: 3-10; derin ağaçlar overfitting yapar, sığ ağaçlar underfitting yapar
- check_circle subsample + colsample_bytree: 0.7-0.9; stokastik gradient boosting ile regularizasyon
- check_circle min_child_weight: büyük değer muhafazakarlık; dengesiz sınıflar için artırılmalı
- check_circle scale_pos_weight: dengesiz sınıflarda negatif/pozitif örnek oranını girerek sınıf ağırlığı
Sikca Sorulan Sorular
XGBoost derin ogrenmeye karsi mi kullanilmali? Tablo verisi icin XGBoost cogu zaman derin ogrenmeye esit veya daha iyi performans verir. Goruntu, ses veya metin icin derin ogrenme tercih edilir.
Erken durdurma nasil ayarlanir? eval_set ve early_stopping_rounds parametreleriyle dogrulama seti kullanilarak agac sayisi otomatik optimize edilir.
SHAP ile XGBoost yorumlamasi nasil yapilir? import shap; explainer = shap.TreeExplainer(model); shap_values = explainer.shap_values(X) ile ozellik onemi ve bireysel tahmin aciklaması elde edilir.
XGBoost kategorik veriyi nasil isler? Varsayilan olarak elle enkodlama gerektirir (OHE, label). Yeni surumler native categorik destekli; ancak CatBoost bu konuda daha gucludur.