Gradient Boosting (XGBoost) Nedir ve Nasıl Çalışır?
Gradient boosting, zayıf modelleri sırayla ekleyerek hataları azaltan bir topluluk öğrenmesi yöntemidir. Nasıl çalıştığı, XGBoost ve LightGBM farkı.
Gradient boosting nedir?
Gradient boosting, birçok basit modeli sırayla eğiterek güçlü bir tahmin modeli elde eden makine öğrenmesi yöntemidir. Türkçede gradyan artırma da denir. Temel birim çoğunlukla küçük bir karar ağacıdır; tek başına zayıftır, ama peş peşe eklendiğinde isabet ciddi biçimde artar.
Bu yaklaşım topluluk öğrenmesinin (ensemble) bir türüdür. Tablo biçimindeki yapılandırılmış verilerde, yani satır ve sütunlardan oluşan müşteri, işlem ya da sensör verilerinde en yaygın ve güçlü yöntemlerden biri kabul edilir.
Nasıl çalışır?
Mantık, hatadan öğrenmektir: • İlk model basit bir tahmin yapar, örneğin ortalamayı verir. • Gerçek değerler ile tahmin arasındaki hata, yani artık hesaplanır. • Yeni bir model eğitilir; amacı bu hatayı tahmin etmektir. • Yeni modelin tahmini, küçük bir öğrenme oranıyla toplam tahmine eklenir. • Bu adımlar belirlenen sayıda ya da iyileşme durana kadar tekrarlanır.
"Gradyan" ifadesi, hatayı kayıp fonksiyonunun gradyanı yönünde küçültmeye çalışmasından gelir. Yani her yeni model, kaybı en çok azaltacak yöne doğru atılan bir adım gibidir.
Küçük bir örnek
Örneğin bir banka, müşterinin kredi geri ödemesini tahmin etmek istiyor. İlk model herkese aynı genel riski verir. İkinci model, ilkinin yanıldığı müşterilere bakar ve gelir düzeyi yüksek ama gecikme geçmişi olan kişileri daha riskli görmeyi öğrenir. Üçüncü model hâlâ yanıldığı küçük grupları düzeltir.
Her ağaç tek başına kaba kalır; hepsinin toplamı ise gelir, gecikme geçmişi, borç oranı gibi değişkenlerin karmaşık etkileşimini yakalar.
XGBoost, LightGBM ve CatBoost
Bunlar gradient boosting fikrinin popüler kütüphane uygulamalarıdır: • XGBoost: Düzenlileştirme, eksik veri işleme ve hızlı paralel eğitim ile yarışmalarda ve sanayide yaygınlaştı. • LightGBM: Büyük veri kümelerinde hız ve düşük bellek kullanımı için optimize edilmiştir. • CatBoost: Kategorik değişkenleri doğrudan işlemekte güçlüdür.
Üçü de aynı temel mantığı kullanır; farkları ağaç büyütme stratejisi, kategorik veri yönetimi ve hız-bellek dengesindedir.
Random forest ile farkı
İkisi de ağaç topluluklarıdır, ama çalışma biçimleri farklıdır.
Random forest ağaçları birbirinden bağımsız ve paralel eğitir, sonuçların ortalamasını alır; temel hedefi varyansı düşürmektir. Gradient boosting ise ağaçları sırayla eğitir ve her biri öncekinin hatasına odaklanır; temel hedefi yanlılığı azaltmaktır.
Boosting çoğunlukla daha yüksek isabet sağlar, ama hiperparametre ayarına ve aşırı öğrenmeye daha duyarlıdır. Random forest ise daha az ayarla makul sonuç verir.
Dikkat edilmesi gerekenler
- Aşırı öğrenme: Çok fazla ağaç ya da çok derin ağaç eğitim verisini ezberletebilir. Erken durdurma, ağaç derinliğini sınırlama ve düşük öğrenme oranı yardımcı olur.
- Hiperparametre ayarı: Öğrenme oranı, ağaç sayısı ve derinlik birlikte ayarlanır; doğrulama verisiyle denenir.
- Yorumlanabilirlik: Yüzlerce ağaç doğrudan okunamaz; değişken önem ve SHAP gibi yöntemler kullanılır.
- Veri sızıntısı: Eğitim sırasında hedefe dair bilgi sızarsa sonuçlar gerçek dışı iyi çıkar.
Mindset programlarında gradient boosting
Boosting ve Ensemble Yöntemler (XGBoost, LightGBM) programı ensemble öğrenmesi temelleri, Random Forest ve bagging, gradient boosting mekanizması ve XGBoost ile rekabetçi modelleme modüllerini içerir.
Programın devamında LightGBM ve CatBoost ile gelişmiş uygulamalar ve üretim ile proje uygulamaları modüllerini içerir.
İlgili Mindset programı
Boosting ve Ensemble Yöntemler (XGBoost, LightGBM)
Sık sorulan sorular
Gradient boosting hangi problemlerde kullanılır?
Hem sınıflandırma hem regresyon problemlerinde kullanılır: kredi riski, müşteri kaybı tahmini, talep tahmini, sıralama ve dolandırıcılık tespiti gibi tablo verisiyle çalışılan işlerde yaygındır. Sınıflandırmada çıktı bir sınıftır (geri öder ya da ödemez), regresyonda sürekli bir değerdir (gelecek dönem talep miktarı). Aynı yöntem kayıp fonksiyonu değiştirilerek her ikisine uyarlanır.
XGBoost ile gradient boosting aynı şey midir?
Hayır. Gradient boosting genel yöntemdir. XGBoost bu yöntemin hız ve düzenlileştirme eklenmiş, geniş kullanılan bir kütüphane uygulamasıdır. LightGBM ve CatBoost de aynı yöntemin farklı uygulamalarıdır.
Gradient boosting derin öğrenmeden mi iyidir?
Duruma bağlıdır. Tablo biçimindeki yapılandırılmış verilerde genellikle çok güçlü ve hızlı bir seçenektir. Görüntü, ses ve metin gibi yapılandırılmamış verilerde ise derin öğrenme genellikle öne çıkar.
Gradient boosting için veri ölçeklemesi gerekir mi?
Ağaç tabanlı olduğu için genellikle gerekmez. Ağaçlar değerlerin sıralamasına göre bölünür, bu yüzden ölçeklemeye karşı büyük oranda duyarsızdır. Kategorik değişkenlerin işlenme biçimi ise kütüphaneye göre değişir.