XGBoost
XGBoost, düzenlileştirilmiş karar ağaçlarını teker teker ekleyen bir gradyan artırma kitaplığıdır ve tablo verileri için önde gelen seçeneklerden biridir. Kodla birlikte nasıl çalıştığı.
XGBoost (eXtreme Gradient Boosting), gradyan artırmalı karar ağaçlarına yönelik açık kaynaklı bir kütüphanedir ve tablo verileri için en yaygın kullanılan araçlardan biridir. Tianqi Chen, bu aracı Washington Üniversitesi'nde bir araştırma projesi olarak başlattı ve 2014'te yayımladı; Carlos Guestrin ile birlikte yazdığı 2016 KDD makalesi XGBoost: Ölçeklenebilir Bir Ağaç Artırma Sistemi, düzenlileştirilmiş amacını ve sistem tasarımını açıkladı. DMLC topluluğu tarafından sürdürülen kütüphane, Python, R, JVM ve C üzerinden sınıflandırma, regresyon ve sıralama işlemlerini yürütür; CPU'larda ve GPU'larda çalışır, Dask ve Spark ile yatay ölçeklenir. Makalesinde, Kaggle'ın blogunda 2015'te yayımlanan ve yarışma kazanan 29 çözümden 17'sinin XGBoost kullandığı bildirilir.
XGBoost Nasıl Çalışır#
XGBoost, bir topluluğu sıralı olarak oluşturur: Sabit bir tahminle başlar ve her artırma turunda bir ağaç ekler; her ağaç, kendisinden önceki ağaçların bıraktığı kaybı azaltmak üzere eğitilir. Son tahmin, ağaçların çıktılarının toplamıdır; tek bir ağacın baskın olmasını önlemek için her çıktıya öğrenme oranı (eta, varsayılan 0.3) uygulanır. Makaledeki iki fikir, her ağacın nasıl oluşturulacağını belirler:
- İkinci dereceden amaç: XGBoost, her satır için kaybın mevcut tahmine göre birinci ve ikinci türevlerini, yani gradyanı
gve Hessian'ıhhesaplar. Gradyan toplamıGve Hessian toplamıHolan satırları içeren bir yaprak, ikinci dereceden iyileştiricilerin attığı Newton adımının aynısı olan-G / (H + λ)ağırlığını alır. - Düzenlileştirilmiş ağaçlar: Amaç işlevi, yaprak başına
γcezası ve yaprak ağırlıklarına uygulanan L2 cezasıλekler; isteğe bağlı olarak L1 cezasıαda eklenebilir. Bir bölme yalnızca kazancı½ [G_L²/(H_L + λ) + G_R²/(H_R + λ) − (G_L + G_R)²/(H_L + H_R + λ)] − γpozitif olduğunda tutulur; böylece ağaç oluşturma sürecine düzenlileştirme eklenir ve aşırı öğrenme sınırlandırılır.
Ağaçların derinliği sınırlandırılır (max_depth, varsayılan 6); grow_policy="lossguide" yaprak bazlı büyümeyi etkinleştirmediği sürece ağaçlar seviye seviye büyür. Eğitim genellikle bir doğrulama kümesinde erken durdurmayla yürütülür:
Eksik Değerler, Hız ve Ölçek#
XGBoost'un seyrekliğe duyarlı bölme bulma yöntemi, değer atama adımı olmadan boşluklar içeren tablolarda eğitim yapar. Her bölmede, eksik değeri olan satırları önce sola, sonra sağa yönlendirmeyi dener ve kazancı yüksek olan yönü düğümün varsayılan dalı olarak seçer. Aynı mekanizma, one-hot kodlamalar gibi seyrek matrislerde yalnızca depolanan girdileri taramasını da sağlar. Bu örnekte, scikit-learn'ün meme kanseri veri kümesindeki özellik değerlerinin %30'u gizlenir ve model doğrudan bu boşluklarla eğitilir:
import numpy as np
import xgboost as xgb
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Hide 30% of all values; each split learns a default branch for missing ones
rng = np.random.default_rng(0)
X_train_nan = np.where(rng.random(X_train.shape) < 0.3, np.nan, X_train)
X_test_nan = np.where(rng.random(X_test.shape) < 0.3, np.nan, X_test)
for name, train, test in [("complete", X_train, X_test), ("30% missing", X_train_nan, X_test_nan)]:
model = xgb.XGBClassifier(n_estimators=200, max_depth=4, learning_rate=0.1)
model.fit(train, y_train)
print(f"{name}: accuracy {model.score(test, y_test):.3f}")Eksiksiz verilerde 0.972, hem eğitim hem de test kümelerinde değerlerin %30'u eksikken 0.951 doğruluk yazdırır.
Hız için varsayılan hist ağaç yöntemi, her özelliği en fazla 256 kutuya böler (max_bin) ve bölmeleri kutu sınırlarında arar; LightGBM de aynı yaklaşımı kullanır. Buna karşılık exact, sıralanmış her değeri tek tek değerlendirir. device="cuda" ayarı eğitimi NVIDIA GPU'ya taşır, enable_categorical=True kategorik sütunları yerel olarak böler ve harici bellek modu RAM'den büyük veri kümelerinde eğitim yapar. 2.1 sürümünden bu yana modeller varsayılan olarak ikili UBJSON biçiminde kaydedilir.
XGBoost ve İlgili Yöntemler#
- LightGBM: Microsoft'un 2016 tarihli artırma çerçevesi; varsayılan olarak ağaçları yaprak bazlı büyütür ve gradyan tabanlı satır örneklemesi ile seyrek özellikleri paketleme yöntemlerini ekler. Her iki kütüphane de artık varsayılan olarak histogram kullanıyor ve tekniklerin çoğunu paylaşıyor.
- CatBoost: Yandex'in artırma kütüphanesi; simetrik ağaçlar oluşturur ve kategorik özellikleri sıralı hedef istatistikleriyle kodlar.
- Rastgele orman: Önyükleme örneklerinde derin ağaçları birbirinden bağımsız eğiten ve bunların ortalamasını alan bir bagging yöntemidir; varyansı düşürür ve çok az ayar gerektirir.
- Derin öğrenme: Ağların ham verilerden özellik öğrendiği görsel, ses ve metin gibi yapılandırılmamış girdiler için standart yöntemdir. Mühendislik uygulanmış özelliklerden oluşan tablolarda, artırılmış ağaçlar hâlâ aşılması gereken olağan temel yöntemdür; TabPFN gibi tablo verilerine yönelik temel modeller ise artık küçük veri kümelerinde onlarla rekabet ediyor.
Gerçek Dünya Uygulamaları#
- Dolandırıcılık tespiti ve kredi riski: Ödeme şirketleri her işlemi tutar, satıcı, konum, cihaz ve hesap geçmişi özelliklerine göre puanlar. XGBoost'un hızlı çıkarımının gerçek zamanlı kararlara uygun olduğu bu temel bir tahmine dayalı modelleme görevidir.
- Görsel inceleme: Üretim kalite sistemleri kamera ve sensör verilerini birleştirir. Ultralytics YOLO26 modellerinin tahminleri, kamera tarafındaki veriyi sağlar:
result.summary(), algılanan her kusurun sınıfını, güven skorunu ve kutu koordinatlarını döndürür. Tesis, bu verileri parça başına toplayıp sıcaklık ve basınç ölçümleriyle özellikler olarak birleştirerek arızaları tahmin eden bir XGBoost modeline verebilir. - Sıralama ve tıklama tahmini:
XGBRanker, arama sonuçlarını sıralamak için varsayılan olarakrank:ndcgamacıyla eğitilir; ikili sınıflandırıcılar ise reklamlara tıklanma oranlarını tahmin eder. - Yarışma kazandıran problemler: KDD makalesinde, 2015'te kazanan çözümlerin arkasındaki görevler sıralanır. Bunlar arasında mağaza satış tahmini, yüksek enerji fiziği olay sınıflandırması, kötü amaçlı yazılım sınıflandırması ve büyük ölçekli çevrimiçi kursu bırakma tahmini yer alır.










