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
Parametre | Type | Default | Açıklama |
learning_rate | float | 1e-3 | Öğrenme oranı. |
iterations | float | 1e-6 | Boosting aşamasındaki ağaç sayısı. |
depth | float | 1e-6 | Her bir ağacın derinliği. |
l2_leaf_reg | float | 1e-6 | L2 düzenleme. |
bagging_temperature | bool | False | Rastgelelik. Boosting örnekleme sırasında kullanılır. |
border_count | float | 10000 | Sayısal özelliklerin kuantize edilmesi. |
random_strength | bool | True | Rastgele örnekleme sırasında özelliklerin güçlendirilmesi için kullanılan güçlendirme katsayısı. |
leaf_estimation_method | bool | True | Ağaç yapraklarının tahmin yöntemi. |
grow_policy | bool | False | Ağaç büyüme stratejisi. |