Чем различаются XGBoost, LightGBM и CatBoost и как настраивать градиентный бустинг?
- Какие гиперпараметры у градиентного бустинга самые важные?
Все три — реализации градиентного бустинга на деревьях. XGBoost — регуляризация в функции потерь и быстрая точная реализация; LightGBM — рост деревьев по листьям и гистограммы, очень быстрый на больших данных; CatBoost (Яндекс) — встроенная работа с категориальными признаками и симметричные деревья, хорош «из коробки».
- Главные параметры: learning rate и число деревьев (вместе), глубина или число листьев, subsample и colsample, регуляризация
- Число деревьев подбирают ранней остановкой по валидации
- Маленький learning rate + много деревьев = точнее, но дольше
А ещё Для категорий с высокой кардинальностью CatBoost обычно проще всего
Подробно
Общая схема настройки:
- Зафиксировать learning rate (0,05–0,1) и включить раннюю остановку на валидации — число деревьев подберётся само.
- Настроить сложность дерева: max_depth (XGBoost, CatBoost) или num_leaves (LightGBM), минимум объектов в листе.
- Добавить стохастичность: доля строк (subsample) и признаков (colsample_bytree) на дерево — снижает переобучение.
- Регуляризация: L1 и L2 на веса листьев.
- В конце уменьшить learning rate и увеличить число деревьев для финального прироста.
Отличия реализаций:
- XGBoost — растит дерево по уровням, сильная регуляризация, поддержка GPU, отличная документация.
- LightGBM — растит дерево по листьям (быстрее сходится, но легче переобучается — ограничивают num_leaves), гистограммное разбиение, очень быстрый.
- CatBoost — ordered target statistics для категорий (без утечки целевой переменной), симметричные (oblivious) деревья — быстрый инференс, хорошие параметры по умолчанию.
Подводные камни: утечка данных в признаках, валидация без учёта времени для временных рядов, слишком большая глубина.
Что хотят услышать
- Различия трёх библиотек.
- Порядок настройки и ключевые параметры.
- Ранняя остановка.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗CatBoost не умеет работать с категориальными признаками
- ✗LightGBM строит симметричные деревья, а CatBoost растит их по листьям; число деревьев фиксируют заранее
- ✓CatBoost силён в категориях, LightGBM — рост по листьям; число деревьев — ранней остановкой
- ✗Число деревьев подбирают независимо от learning rate
Разбор темы
- Деревья решений и градиентный бустинг
Как строится дерево, чем случайный лес отличается от бустинга, как выбрать между XGBoost, LightGBM и CatBoost и как объяснить прогноз.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.