LightGBM

LGBM, Microsoft tarafından 2017 yılında geliştirilmiştir. Modelin tanıtıldığı “LightGBM: A Highly Efficient Gradient Boosting Decision Tree” makalesinde diğer modellere göre 20 kat daha hızlı çalıştığı yazmaktadır. Diğer makine öğrenmesi modellerinden farklı olarak paralel öğrenme ve GPU kullanımını destekler. Light Gradient Boosting Machine, histogram tabanlıdır. Kategorik değişkenler içn histogramı sıralar ve en iyi bölünmeyi seçer. Gradient boosting yöntemini kullanır. Ağaçları düşey olarak büyütür. Bu, her ağacın yalnızca veri kümesinin belirli bir alt kümesinde odaklanmasını sağlar böylece hesaplama süresi azalır. Genelde karar ağacı algoritmaları seviye odaklı (level-wise – BFS) büyüme stratejisi kullanırken LGBM yaprak odaklı (leaf-wise – DFS) büyüme stratejisi kullanır. Yaprak odaklı büyümede bölme işlemi kaybı azalan yapraklardan devam eder. Böylece model daha az hata oranı ile daha hızlı öğrenir.

Eğitim aşamasında 2 farklı yöntem barındırır.

  • Gradient-based One-Side Sampling (GOSS): Eğitim sürecinde kullanılan bir örnekleme tekniğidir. GOSS, büyük gradyanlara sahip örnekleri korurken, küçük gradyanlara sahip örnekleri filtreleyerek veri setinin boyutunu azaltır. Böylece gradient boost algoritması daha hızlı çalışır.
  • Exclusive Feature Bundling (EFB): Özellik mühendisliği sırasında kullanılan bir tekniktir. EFB, benzer davranış gösteren özellikleri gruplayarak bellek kullanımını azaltır ve modelin karmaşıklığını azaltır. Yani seyrek özellikleri birleştirip daha yoğun özellikler oluşturur. Bu sayede, eğitim süresi kısaltılır ve modelin genelleştirme yeteneği artar.

Hiperparametreler

ParametreTypeDefaultAçıklama
num_leavesint31Bir ağaçtaki her seviyedeki maksimum yaprak sayısı. Overfitting olmaması için 2^(max_depth) den küçük olmalıdır.
max_depthint-1Bir ağacın maksimum derinliği.
learning_rateint0.1Gradient güncellemeleri sırasında kullanılan öğrenme oranı.
n_estimatorsint100Oluşturulacak ağaç sayısı.
min_child_samplesint20Bir yaprağın altındaki minimum örnek sayısı.
subsampleint1Her ağaç için kullanılacak alt örnekleme oranı.
colsample_bytreeint1Her ağaç için kullanılan özelliklerin yüzdesi.
reg_alphaint0L1 düzenleme.
reg_lambdaint0L2 düzenleme.