Как работает бустинг и как строится модель бустинга
Что проверяют
Понимаете ли вы механику, а не только названия библиотек: что именно учит каждое следующее дерево и почему ансамбль слабых моделей становится сильным. Следом обычно просят сравнить бустинг с бэггингом и случайным лесом или объяснить, как бороться с переобучением.
Как отвечать
Бустинг строит ансамбль последовательно: каждая новая модель исправляет ошибки уже построенной суммы. Разведите два семейства:
- AdaBoost: после каждого шага растут веса неверно классифицированных объектов, следующий слабый ученик (часто пень, дерево глубины 1) фокусируется на них, итог это взвешенное голосование;
- градиентный бустинг: на каждом шаге считается антиградиент функции потерь по текущим предсказаниям, и новое дерево приближает именно его. Для MSE антиградиент совпадает с остатками, отсюда популярное «учим дерево на остатках», но для MAE это уже только знак ошибки, а в общем случае просто градиент.
Каркас градиентного бустинга:
- стартовое предсказание константой, например средним или логарифмом шансов;
- на каждой итерации считаем псевдоостатки и учим на них неглубокое дерево;
- добавляем его с коэффициентом
learning_rate(обычно от 0.01 до 0.3); - повторяем до
n_estimatorsили до ранней остановки по валидации.
Главные гиперпараметры: темп обучения и число деревьев (они связаны обратно), глубина или число листьев, subsample и colsample_bytree, L1 и L2 регуляризация весов листьев. Из библиотек стоит назвать XGBoost, LightGBM (гистограммы, рост дерева по листьям) и CatBoost (симметричные деревья, встроенная работа с категориальными признаками). На табличных данных бустинг до сих пор чаще всего сильнее нейросетей.
Где спотыкаются
Говорят, что бустинг устойчив к переобучению. Наоборот: он снижает смещение и при большом числе деревьев переобучается, поэтому нужны ранняя остановка и маленький шаг.
Смешивают AdaBoost и градиентный бустинг в один алгоритм, где «перевзвешивают объекты и учат на остатках» одновременно.
Не могут объяснить, почему деревья неглубокие. Слабый ученик нужен, чтобы каждая добавка была маленькой поправкой, а глубокие деревья быстро запоминают шум.