Additive Model ve Zayıf Öğrenici Yapısı
Gradient Boosting, Jerome Friedman'ın 1999–2001 yıllarındaki çalışmalarına dayanan bir additive model çerçevesidir. Her aşamada yeni bir zayıf öğrenici —genellikle sığ bir karar ağacı (derinlik 3–8)— modele eklenir; bu zayıf öğrenicinin tek amacı bir önceki modelin geri kalan hatasını azaltmaktır. 'Zayıf' kavramı, rastgele tahminlemeden biraz daha iyi performans anlamına gelir; bu bileşenler bir araya geldiğinde güçlü bir model oluşur. Kayıp fonksiyonu —regresyon için ortalama kare hata (MSE), sınıflandırma için log-loss, sıralama için LambdaRank— hesaplamanın merkezindedir: her ağaç, kayıp fonksiyonunun negatif gradyanına (artık değerlerine) göre optimize edilir. Bu yapı, teknik olarak Gradient Boosting'i fonksiyon uzayında gradyan iniş olarak tanımlamayı mümkün kılar.
XGBoost, LightGBM ve CatBoost Karşılaştırması
- check_circle XGBoost (2016 — Tianqi Chen): Level-wise (satır bazlı) ağaç büyümesi, L1 ve L2 regülarizasyon, DART tekniği ile dropout benzeri düzenleme. Büyük veri setlerinde kararlı ve genelleştirilebilir. GPU hızlandırma: tree_method='hist', device='cuda'. Kaggle yarışmalarının uzun yıllar gözdesi.
- check_circle LightGBM (2017 — Microsoft): Leaf-wise büyüme ile daha hızlı ağaç. GOSS (Gradient-based One-Side Sampling) ve EFB (Exclusive Feature Bundling) ile hem bellek hem hız optimizasyonu. Kategorik özellikler için dahili destek. Çok büyük veri setlerinde XGBoost'tan belirgin şekilde hızlı.
- check_circle CatBoost (2017 — Yandex): Kategorik özellikler için ordered target encoding ve ordered boosting. Özellik mühendisliği gerektirmeden kategorik verilerle doğrudan çalışabilme en güçlü yanı. GPU desteği ve standart Python/R/Java API. Veri hazırlık maliyetini önemli ölçüde azaltır.
- check_circle Scikit-learn GradientBoosting ve HistGradientBoosting: GradientBoostingClassifier/Regressor: klasik ve güvenilir, küçük veri setleri için. HistGradientBoostingClassifier: histogram tabanlı, büyük veri setlerinde hızlı, LightGBM'e yakın performans. Ek kurulum gerektirmeden standart ML pipeline'larına entegre edilir.
Kullanım Alanları
- check_circle Finans ve Risk Yönetimi: Kredi skoru modelleme, temerrüt riski tahmini, finansal dolandırıcılık (fraud) tespiti. Yapısal müşteri verisiyle yüksek doğruluk, regülasyon uyumu için SHAP yorumlanabilirliği.
- check_circle Sağlık ve Biyoinformatik: Hasta hastalık riski tahmini, ilaç-hedef etkileşim tahmini, klinik veri sınıflandırması. Sınırlı etiketli veriye rağmen güçlü genelleştirme kapasitesi.
- check_circle Reklamcılık ve E-ticaret: Tıklama oranı (CTR) tahmini, kullanıcı dönüşüm ve kayıp tahmini, ürün tavsiye sistemleri. Meta, Google ve Alibaba'nın reklam sıralama modellerinde kritik bileşen.
- check_circle Arama Sıralaması ve Bilgi Erişimi: LambdaMART (LambdaRank + MART) algoritmasıyla belge sıralama. Bing ve diğer arama motorlarında kullanılan öğrenmeli sıralama (learning-to-rank) standardı.
- check_circle Zaman Serisi ve Tahmin: Enerji tüketim tahmini, hava durumu analizi, perakende talep planlaması. Zamana bağlı özellikler (lag features, rolling statistics) ile tablolar verisi standardı.
Random Forest ile Karşılaştırma
Her iki algoritma da karar ağaçlarını kullanan topluluk yöntemleridir, ancak temel farkları eğitim stratejisindedir. Random Forest, Bagging yöntemini kullanır: ağaçlar birbirinden bağımsız ve paralel olarak eğitilir, ardından sonuçlar oylamayla birleştirilir. Bu yapı varyansı düşürür, ancak önyargıyı (bias) yüksek tutar. Aşırı öğrenmeye karşı doğası gereği daha dayanıklıdır ve hiperparametre ayarı daha basittir. Gradient Boosting ise ağaçları sıralı olarak ekler; her yeni ağaç öncekinin hatasını gidermek için özelleşir. Bu yaklaşım hem önyargıyı hem de varyansı azaltmaya çalışır; ancak sıralı eğitim paralelleştirmeyi olanaksız kılar ve eğitim süresi uzar. Pratik sonuç olarak Gradient Boosting yapısal veri setlerinde genellikle daha yüksek doğruluk sağlar, ancak öğrenme hızı ve ağaç sayısı gibi hiperparametrelere daha duyarlıdır.
Kritik Hiperparametreler ve Overfitting Kontrolü
- check_circle learning_rate (shrinkage / eta): Her ağacın katkısını ölçekleyen parametre. Düşük değer (0.01–0.05) + yüksek n_estimators kombinasyonu en iyi genelleştirmeyi verir. learning_rate küçüldükçe early stopping kritik hale gelir.
- check_circle n_estimators / num_boost_round: Toplam ağaç sayısı. early_stopping_rounds (örn. 50) ile doğrulama seti hatasını izleyerek otomatik belirlenmesi önerilir; el ayarı overfitting veya underfitting'e yol açabilir.
- check_circle max_depth / num_leaves: Bireysel karar ağacının derinliği. Gradient Boosting için 3–6 tipik değer aralığıdır; derin ağaçlar overfitting riskini artırır. LightGBM'de num_leaves ile de kontrol edilir (31 varsayılan).
- check_circle subsample ve colsample_bytree: subsample: Her ağaçta kullanılacak örnek oranı (0.7–0.9 önerilir). colsample_bytree: Her ağaçta kullanılacak özellik oranı. Her ikisi de rastgelelik ekleyerek overfitting'i azaltır.
- check_circle Erken Durdurma (Early Stopping): Doğrulama seti hatasını izleyerek belirli sayıda iterasyon boyunca iyileşme yoksa eğitimi durdurur. XGBoost: early_stopping_rounds=50; LightGBM: callbacks=[lgb.early_stopping(50)]. Aşırı öğrenmeye karşı en etkili pratik araç.