Gradient Boosting Nedir? Gradyan Artırma Algoritması (Gradyan Artırma)

Zayıf öğrenicileri sıralı biçimde birleştirerek önceki modelin hatalarını düzelten, yüksek doğruluk sunan bir topluluk öğrenme algoritması.

Gradient Boosting (Gradyan Artırma), makine öğreniminde zayıf öğrenicileri art arda sıralı biçimde ekleyerek güçlü ve yüksek doğruluklu bir tahmin modeli oluşturan bir topluluk öğrenme algoritmasıdır. Random Forest gibi diğer topluluk yöntemlerinin ağaçları paralel olarak eğitmesinin aksine, Gradient Boosting her yeni ağacı bir önceki modelin kalan hatasını (artık değer, residual) azaltacak şekilde sıralı olarak inşa eder. Algoritmanın çalışma mantığı şu adımlarla özetlenebilir: İlk adımda verilen hedef değer için basit bir temel tahmin yapılır; bu genellikle ortalama değerdir. Sonraki adımda mevcut tahmin ile gerçek değer arasındaki farklar (artık değerler) hesaplanır. Bir sonraki karar ağacı bu artık değerleri tahmin etmek üzere eğitilir. Yeni ağacın katkısı, aşırı öğrenmeyi önlemek için öğrenme hızı (learning rate) parametresiyle ölçeklendirilerek mevcut modele eklenir. Bu döngü, belirlenen ağaç sayısına ulaşılana kadar tekrar eder; her yinelemede model bir öncekinin en zayıf noktasına odaklanır. Gradient Boosting'in matematiksel temeli gradyan iniş (gradient descent) optimizasyonuna dayanır. Ağaçlar, seçilen kayıp fonksiyonunu minimize edecek şekilde gradyan yönünde oluşturulur; bu yapı, algoritmanın regresyon, sınıflandırma ve sıralama gibi farklı problem tiplerine kolayca uyarlanmasını sağlar. Algoritmanın en belirgin avantajı, tablolar halindeki yapısal veriyle (structured/tabular data) olağanüstü yüksek doğruluk sağlamasıdır. Kaggle yarışmalarında yıllardır zirvede yer alan bu aile, XGBoost, LightGBM ve CatBoost gibi modern kütüphanelerle bellek ve hız açısından da optimize edilmiştir. XGBoost level-wise (satır bazlı) ağaç büyümesiyle daha kararlı sonuçlar üretirken LightGBM ise leaf-wise (yaprak bazlı) büyüme ve histogram tabanlı bölme ile büyük veri setlerinde çok daha hızlı çalışır. Dezavantajları arasında aşırı öğrenmeye (overfitting) yatkınlık, hiperparametre ayarının (n_estimators, learning_rate, max_depth, min_samples_split) hassasiyeti ve büyük veri setlerinde paralel eğitimin zorluğu sayılabilir. Öğrenme hızı düşük ve ağaç sayısı yüksek tutulduğunda daha genelleştirilebilir modeller elde edilir; ancak bu dengenin bulunması kapsamlı çapraz doğrulama (cross-validation) gerektirir.

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ç.