Чем отличаются деревья в Random Forest и Gradient Boosting
Что проверяют
Понимаете ли вы, что разница не в словах «параллельно» и «последовательно», а в том, какую задачу решает каждое дерево и какие деревья поэтому нужны. Следом спрашивают, почему в бустинге деревья мелкие, а в лесе глубокие.
Как отвечать
Стройте ответ через разложение ошибки на смещение и разброс:
- Random Forest: бэггинг. Каждое дерево учится на бутстрап-выборке и в каждом узле выбирает сплит из случайного подмножества признаков (
max_features, для классификации по умолчанию корень из числа признаков). Деревья глубокие, почти до чистых листьев: смещение у каждого низкое, разброс большой, а усреднение слабо коррелированных деревьев разброс гасит. Деревья независимы и строятся параллельно; - Gradient Boosting: каждое новое дерево учится не на целевой переменной, а на антиградиенте функции потерь по текущим предсказаниям ансамбля (для MSE это обычные остатки). Деревья мелкие, глубина 3-8: у каждого высокое смещение, а последовательное сложение с шагом
learning_rateего снижает. Число деревьев ограничивают ранней остановкой по валидации; - деревья всегда регрессионные: даже в классификации бустинг строит деревья, которые предсказывают поправку к логиту, а не класс.
Назовите реализации: RandomForestClassifier из scikit-learn, а для бустинга XGBoost, LightGBM (рост дерева по листьям, num_leaves) и CatBoost (симметричные деревья, встроенная работа с категориями). На табличных данных настроенный бустинг обычно точнее, зато лес почти не требует настройки и даёт out-of-bag оценку.
Где спотыкаются
Говорят, что в бустинге дерево учится «на ошибочно классифицированных объектах». Это AdaBoost с перевзвешиванием объектов, а градиентный бустинг учит деревья на градиентах потерь.
Утверждают, что Random Forest переобучается от большого числа деревьев. Нет: добавление деревьев выводит качество на плато, а переобучение идёт от слишком глубоких деревьев на шумных данных. В бустинге лишние деревья как раз переобучают.
Не могут объяснить, зачем в лесе случайный выбор признаков. Без него деревья на бутстрап-выборках получаются похожими, их ошибки коррелируют, и усреднение мало что даёт.