Какие ансамбли деревьев существуют
Что проверяют
Понимаете ли вы разницу между двумя способами собрать деревья: параллельно, чтобы снизить разброс, и последовательно, чтобы снизить смещение. Следом обычно спрашивают, почему бустинг переобучается легче леса и какие гиперпараметры это сдерживают.
Как отвечать
Начните с классификации, а не со списка библиотек:
- бэггинг: деревья учатся независимо на бутстреп-выборках, ответы усредняются. Снижает дисперсию, поэтому деревья берут глубокими;
- Random Forest: бэггинг плюс случайное подмножество признаков на каждом разбиении (
max_features), это делает деревья менее похожими. Бонус: оценка out-of-bag без отдельной валидации; - Extra Trees: пороги разбиений выбираются случайно, модель быстрее и чуть сильнее регуляризована;
- AdaBoost: ранний бустинг, перевзвешивает объекты, на которых ошиблись предыдущие модели;
- градиентный бустинг: каждое новое неглубокое дерево аппроксимирует антиградиент функции потерь по предсказаниям ансамбля. Ключевые параметры:
learning_rate, число деревьев, глубина, доля подвыборки; - реализации: XGBoost (регуляризация в целевой функции, работа с пропусками), LightGBM (гистограммы, рост дерева по листьям), CatBoost (упорядоченный бустинг и встроенная обработка категориальных признаков), в scikit-learn есть
HistGradientBoostingClassifier.
Отдельно упомяните стекинг: метамодель учится на out-of-fold предсказаниях базовых моделей.
Закончите практикой. На табличных данных градиентный бустинг обычно сильнее, лес проще настроить, и он хорош как бейзлайн. Добавление деревьев в лес почти не ведёт к переобучению, а в бустинге их число подбирают через early stopping на валидации.
Где спотыкаются
Говорят, что бустинг «исправляет ошибки предыдущего дерева», и не могут объяснить, что именно он аппроксимирует. Нужны слова про остатки для MSE и антиградиент в общем случае.
Путают роли глубины: в лесу деревья глубокие, в бустинге мелкие, и это следствие того, какую часть ошибки уменьшает каждый метод.
Верят встроенной важности признаков по уменьшению impurity. Она завышает признаки с большим числом уникальных значений, для выводов надёжнее permutation importance или SHAP.