Почему ансамбль из нескольких деревьев лучше одного дерева
Что проверяют
Понимаете ли вы разложение ошибки на смещение и разброс и назовёте ли механизм, а не список библиотек. Вопрос отсеивает тех, кто знает, что лес обычно точнее дерева, но не может объяснить, за счёт чего именно.
Как отвечать
Глубокое дерево это модель с низким смещением и огромным разбросом: сдвиньте порог в корне на одном объекте, и вся структура ниже перестроится. Ансамбль бьёт по одной из двух частей ошибки, и по какой именно, зависит от схемы:
- беггинг и случайный лес: деревья строятся независимо на бутстрэп-выборках, ответы усредняются. Дисперсия среднего падает тем сильнее, чем слабее деревья скоррелированы между собой, поэтому лес дополнительно берёт случайное подмножество признаков в каждом разбиении. Смещение при этом остаётся примерно как у одного дерева;
- градиентный бустинг: деревья строятся последовательно, каждое следующее учится на остатках предыдущих. Здесь снижается именно смещение, поэтому базовые модели берут неглубокими, а переобучение сдерживают темпом обучения, числом деревьев и регуляризацией.
Сильный ответ заканчивается границами. Ансамбль не нужен, когда важна интерпретируемость и решение надо защищать, когда данных мало, когда критична задержка ответа. И деревья любого числа не экстраполируют за пределы обучающего диапазона значений.
Где спотыкаются
Сводят всё к «чем больше моделей, тем лучше». Усреднение сильно скоррелированных деревьев не даёт почти ничего, поэтому случайность в выборе объектов и признаков здесь не украшение, а главный работающий механизм.
Путают беггинг с бустингом. У леса деревья глубокие и независимые, у бустинга мелкие и зависимые, и настройки к ним идут противоположные: ограничивать глубину в лесу и наращивать её в бустинге обычно вредно.
Считают лес неспособным переобучиться. К росту числа деревьев он устойчив, но прекрасно переобучается на утечке признака из будущего и на шумной разметке, а поймать это можно только честной валидацией с учётом времени и групп.