CatBoost

Yandex tarafından geliştirilmiştir. 2017 yılında Prokhorenkova ve diğerleri tarafından ‘CatBoost: unbiased boosting with categorical features’ isimli makalede tanılmıştır. Adını ‘Category’ ve ‘Boosting’ kelimelerinin birleşiminden alır. CatBoost, ağaç tabanlı bir modeldir ve gradient boosting yöntemini kullanır. Kategorik değerleri otomatik olarak kodlayabilir, boş değerler ve aykırı değerler ile başa çıkarak ön işleme adımını hızlandırır. GPU desteği bulunur. CatBoost, simetrik ağaçlar kurarak çok derin ağaçlar oluşturmadan başarılı sonuçlar elde eder ve aşırı öğrenme sorununun üstesinden gelir.

Çalışma Adımları

  • İlk olarak başlangıç tahminleri (initial prediction) yapılır. İlk tahminler, hedef değişkenin ortalaması veya bir sabit değerle yapılır. Bu, daha sonra modelin hatalarını azaltmak için kullanılır.
  • Ardışık ağaçlar oluşturarak boosting süreci uygulanır. Her ağaç, hedef değişkenin tahminini iyileştirmek için oluşturulur.
  • Her ağacı oluştururken rastgele özellik seçimi yaparak her ağacın farklı bir alt kümeyi kullanmasını sağlar.
  • Ağaçlar oluşturulduktan sonra, hata fonksiyonunu minimize etmek için optimize edilir.
  • Her iterasyonda mevcut modelin hatalarını azaltacak yeni bir ağaç ekler.

Hiperparametreler

ParametreTypeDefaultAçıklama
learning_ratefloat1e-3Öğrenme oranı.
iterationsfloat1e-6Boosting aşamasındaki ağaç sayısı.
depthfloat1e-6Her bir ağacın derinliği.
l2_leaf_regfloat1e-6L2 düzenleme.
bagging_temperatureboolFalseRastgelelik. Boosting örnekleme sırasında kullanılır.
border_countfloat10000Sayısal özelliklerin kuantize edilmesi.
random_strengthboolTrueRastgele örnekleme sırasında özelliklerin güçlendirilmesi için kullanılan güçlendirme katsayısı.
leaf_estimation_methodboolTrueAğaç yapraklarının tahmin yöntemi.
grow_policyboolFalseAğaç büyüme stratejisi.