Случайный лес против бустинга
Вопрос
Сравните случайный лес и градиентный бустинг: как устроены, что снижают, когда что выбрать.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Лес: параллельные глубокие деревья на бутстрепе, снижает variance
Бустинг: последовательные неглубокие деревья на антиградиенте, снижает bias
Бустинг обычно точнее на табличных данных, но чувствительнее к гиперпараметрам и переобучению
Лес устойчивее, проще настроить, есть OOB-оценка
Практика: CatBoost, LightGBM, XGBoost и early stopping
Что могут спросить следом
- Почему в бустинге деревья неглубокие, а в лесу глубокие?
- Может ли случайный лес переобучиться при росте числа деревьев?
Разбор
Случайный лес строит много независимых глубоких деревьев: каждое на бутстреп-выборке и со случайным подмножеством признаков в разбиениях, а затем усредняет. Отдельные деревья имеют низкий bias и высокий variance, усреднение слабо коррелированных деревьев снижает variance. Добавление деревьев не приводит к переобучению, просто перестаёт помогать. Лес легко настроить, он хорошо параллелится и даёт OOB-оценку. Градиентный бустинг строит деревья последовательно: каждое новое учится на антиградиенте ошибки ансамбля и добавляется с маленьким шагом. Он снижает bias, поэтому деревья в нём неглубокие. Бустинг обычно даёт лучшее качество на табличных данных, но чувствительнее к гиперпараметрам и может переобучиться при слишком большом числе деревьев, поэтому нужен early stopping. На практике для табличных задач я начинаю с CatBoost или LightGBM, а лес использую как устойчивый бейзлайн.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.