Какой ваш любимый алгоритм бустинга и почему?

«Какой ваш любимый алгоритм бустинга и почему?» — вопрос из категории Деревья и ансамбли, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В зависимости от задачи я выбираю между тремя основными фреймворками. CatBoost — мой фаворит для задач с большим количеством категориальных признаков, так как он обрабатывает их нативно, без предварительного кодирования, что экономит время и часто дает лучший результат.

from catboost import CatBoostClassifier

# CatBoost сам обработает категориальные колонки
model = CatBoostClassifier(iterations=500, cat_features=cat_feature_indices)
model.fit(X_train, y_train, verbose=100)

Однако, для других сценариев:

  • LightGBM я использую, когда критична скорость обучения или работы с очень большими датасетами, благодаря его эффективной реализации на основе Gradient-Based One-Side Sampling (GOSS).
  • XGBoost — это надежный выбор для соревнований или когда нужен максимальный контроль над процессом обучения и сильная регуляризация.

На практике выбор зависит от данных: для табличных данных с категориями — CatBoost, для скорости — LightGBM, для максимальной точности при тщательной настройке — XGBoost.