Ансамбли алгоритмов
Ансамбль — это композиция многих слабых моделей в одну сильную. Смысл в том, что ошибки отдельных моделей частично независимы, и при правильной комбинации они гасят друг друга. Ровно поэтому ансамбли деревьев — Random Forest и градиентный бустинг — годами остаются лучшим выбором на табличных данных, обгоняя одиночные модели и нередко нейросети.
Две большие ветви устроены противоположно, и путать их — главная ловушка темы. Бэггинг обучает модели параллельно и независимо, усредняет их и снижает разброс (variance). Бустинг обучает модели последовательно, каждая исправляет ошибки предыдущих, и снижает смещение (bias). Из этого различия вытекает всё остальное: почему Random Forest не переобучается от числа деревьев, а бустинг переобучается; почему бэггинг линейных моделей бесполезен; где в GBDT прячется L1/L2-регуляризация. Полная карта — в слоях ниже.
Карта темы
- Что такое ансамбль — bias-variance-декомпозиция и почему комбинация моделей уменьшает ошибку.
- Бэггинг — bootstrap aggregation, снижение разброса усреднением и почему бэггинг линейных моделей ничего не даёт.
- Random Forest — бэггинг над деревьями плюс случайное подпространство признаков в каждой вершине.
- Бустинг — последовательная аддитивная композиция, где каждая модель исправляет ошибки предыдущих и снижает смещение.
- Градиентный бустинг — подгонка под антиградиент потерь как спуск в функциональном пространстве, learning rate и склонность к переобучению.
- Реализации GBDT — CatBoost, LightGBM и XGBoost и различия в способе построения деревьев.
- Гиперпараметры GBDT — глубина, learning rate, размер листа и L1/L2 на значения листьев.
- Подбор гиперпараметров — grid/random/байесовский поиск, валидация и проклятие размерности.
- Стекинг — мета-модель поверх out-of-fold предсказаний базовых моделей и отличие от блендинга.
Частые ошибки и ловушки
| Ошибка | Последствие |
|---|---|
| Путать бэггинг (параллельный) и бустинг (последовательный) | Неверные выводы о переобучении, смещении и разбросе всей темы |
| Считать, что бэггинг снижает смещение | Бэггинг снижает разброс; смещение остаётся прежним |
| Ждать снижения разброса в N раз всегда | Работает лишь при некоррелированных моделях, чего на практике нет |
| Думать, что Random Forest переобучается с числом деревьев | Переобучается бустинг; RF от лишних деревьев почти не меняется |
| Подгонять деревья бустинга под исходные метки | Цель бустинга — антиградиент потерь в точке текущего предсказания |
| Говорить, что у деревьев нет весов для L1/L2 | Штрафуются значения в листьях — они играют роль весов |
| Обучать мета-модель стекинга на in-sample предсказаниях | Утечка таргета; нужны out-of-fold предсказания |
Значение для собеседований
Ансамбли — один из самых частых блоков ML-собеседования, потому что на них удобно проверять глубину: заучить определения легко, а объяснить, почему бустинг переобучается, а RF нет, — уже нет. Сильный кандидат ведёт всё рассуждение от одного различия: бэггинг гасит разброс усреднением независимых моделей, бустинг гасит смещение последовательным исправлением ошибок.
Что обычно проверяют:
- Различие бэггинга и бустинга и что каждый делает со смещением и разбросом.
- Устройство Random Forest — и что подмножество признаков выбирается в каждой вершине, а не на дерево.
- Что цель обучения в градиентном бустинге — антиградиент потерь, а не остатки в узком смысле.
- Тонкости GBDT: реализации, ключевые гиперпараметры, где именно живёт L1/L2.
- Стекинг против блендинга и почему обязательны out-of-fold предсказания.
Типичный неверный ответ: «бэггинг снижает и смещение, и разброс, а Random Forest — это разновидность бустинга». На деле бэггинг трогает только разброс, а Random Forest — параллельный, не последовательный, и именно поэтому не переобучается от роста числа деревьев.