XGBoost ve LightGBM klasik gradient boosting'den hangi açılardan farklıdır? En önemli hiperparametreleri nelerdir?

Cevap

XGBoost ve LightGBM, gradient boosting'in hızlı, ölçeklenebilir ve regularize edilmiş uygulamalarıdır. Temel fikir aynıdır, fark mühendislik ve optimizasyon detaylarındadır.

XGBoost'un yenilikleri

  • İkinci dereceden yaklaşım: Loss'un hem gradyanını hem Hessian'ını (Newton adımı) kullanır.
  • Regularize edilmiş amaç fonksiyonu: Yaprak sayısı (gamma) ve yaprak ağırlıkları (lambda, alpha) cezalandırılır.
  • Eksik değer yönetimi: Her split'te eksik değerler için en iyi yönü kendisi öğrenir.
  • Histogram tabanlı split (tree_method="hist"), GPU desteği, column subsampling.

LightGBM'in farkları

  • Leaf-wise büyüme: En çok loss azaltan yaprağı böler (XGBoost varsayılanı level-wise). Daha hızlı ve doğru, ama küçük veride overfit'e açık.
  • GOSS: Küçük gradyanlı örneklerin bir kısmını atarak hızlanır.
  • EFB: Seyrek, birbirini dışlayan özellikleri paketler.
  • Kategorik özellikleri doğrudan destekler.

CatBoost ise ordered boosting ve güçlü kategorik özellik desteğiyle öne çıkar.

Önemli hiperparametreler

ParametreEtkisi
n_estimators + learning_rateDüşük LR + çok ağaç + early stopping en güvenli yol
max_depth / num_leavesModel karmaşıklığı, LightGBM'de num_leaves asıl kontrol
min_child_weight / min_data_in_leafKüçük yaprakları engeller, overfitting'i azaltır
subsample, colsample_bytreeSatır/sütun örnekleme, variance azaltır
reg_lambda, reg_alphaL2 / L1 regularization
scale_pos_weightDengesiz sınıflar
import xgboost as xgb
model = xgb.XGBClassifier(n_estimators=2000, learning_rate=0.03, max_depth=6,
                          subsample=0.8, colsample_bytree=0.8,
                          early_stopping_rounds=100, eval_metric="aucpr")
model.fit(X_tr, y_tr, eval_set=[(X_va, y_va)], verbose=False)

Not: XGBoost 1.6'dan itibaren early_stopping_rounds (ve eval_metric) constructor'a verilir. fit() parametresi olarak eski kullanım önce deprecated edildi, güncel sürümlerde ise kaldırıldı.

  1. Hiperparametre optimizasyonunu nasıl yaparsınız? Grid search, random search ve Bayesian optimization'ı karşılaştırın.OrtaMakine ÖğrenmesiYapay Zeka
  2. Feature scaling nedir? Standardization ile normalization arasındaki fark nedir ve hangi modeller ölçeklendirme gerektirir?KolayMakine ÖğrenmesiYapay Zeka
  3. PCA (Principal Component Analysis) nasıl çalışır? Ne zaman kullanılır, ne zaman kullanılmamalıdır?OrtaMakine ÖğrenmesiYapay Zeka
  4. NumPy kullanarak k-means algoritmasını sıfırdan yazın. k değerini nasıl seçersiniz ve algoritmanın sınırlamaları nelerdir?ZorMakine ÖğrenmesiYapay Zeka
  5. Random Forest ile Gradient Boosting arasındaki fark nedir? Bagging ve boosting'i karşılaştırın.OrtaMakine ÖğrenmesiYapay Zeka
  6. Lineer regresyon ile lojistik regresyon arasındaki fark nedir? Lojistik regresyonda neden MSE yerine log-loss kullanılır?KolayMakine ÖğrenmesiYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle