Какие ансамблевые методы используют глубокие деревья
Что проверяют
Понимаете ли вы, почему одни ансамбли строят глубокие деревья, а другие мелкие, и как это связано с разложением ошибки на смещение и разброс. Следом часто просят сравнить Random Forest и градиентный бустинг по поведению на шумных данных и по настройке.
Как отвечать
Ключевая мысль: у глубокого дерева низкое смещение и высокий разброс. Усреднение многих слабо коррелированных глубоких деревьев гасит разброс, поэтому глубокие деревья это основа бэггинга:
- Random Forest: каждое дерево учится на бутстрэп-выборке (около 63% уникальных объектов), в каждом узле берётся случайное подмножество признаков. В scikit-learn по умолчанию
max_depth=Noneиmin_samples_leaf=1, то есть деревья растут до чистых листьев. Бонус: out-of-bag оценка черезoob_score=Trueбез отдельной валидации; - Extra Trees: тоже глубокие деревья, но пороги разбиения выбираются случайно, разброс снижается ещё сильнее, а обучение идёт быстрее;
- бэггинг в общем виде:
BaggingClassifierповерх дерева без ограничения глубины.
Бустинг устроен наоборот: он последовательно снижает смещение, и каждое дерево обычно мелкое. В GradientBoostingClassifier по умолчанию max_depth=3, в XGBoost 6, CatBoost строит симметричные деревья глубины 6. Отдельный случай LightGBM: деревья растут по листьям, глубина по умолчанию не ограничена, а сложность держит num_leaves=31, так что отдельные ветки бывают глубокими.
Хорошо закончить выбором: Random Forest почти не требует настройки и устойчив к шуму, бустинг обычно точнее на табличных данных, но чувствителен к learning_rate, числу деревьев и ранней остановке.
Где спотыкаются
Говорят, что бустинг использует глубокие деревья так же, как лес. Глубокие деревья в бустинге быстро переобучаются, поэтому глубину держат малой.
Считают, что Random Forest не переобучается. Добавление деревьев переобучения не вызывает, но сами глубокие деревья запоминают шум, а корреляция между деревьями ограничивает выигрыш от усреднения.
Доверяют встроенной важности признаков по снижению неоднородности. Она завышает признаки с большим числом уникальных значений, надёжнее permutation importance или SHAP.