Ансамбли алгоритмов
Бэггинг и Random Forest, градиентный бустинг и реализации GBDT, влияние на смещение и разброс, подбор гиперпараметров, стекинг.
18 вопросов
MiddleТеорияОчень частоЧто такое градиентный бустинг?
Что такое градиентный бустинг?
Градиентный бустинг — аддитивная сумма базовых моделей (деревьев), обучаемых последовательно: каждая исправляет ошибки ансамбля. Цель — АНТИГРАДИЕНТ потерь в точке текущего предсказания a_{N-1}(x) — спуск в функциональном пространстве.
Типичные ошибки
- ✗Говорят, что бустинг обучает деревья параллельно, как бэггинг
- ✗Подгоняют новые деревья под исходные метки, а не под антиградиент
- ✗Не знают, что цель — антиградиент в точке текущего предсказания ансамбля
Уточняющие вопросы
- →Почему подгонка под антиградиент эквивалентна спуску в функциональном пространстве?
- →Какие реализации градиентного бустинга ты знаешь?
MiddleТеорияОчень частоКак искать хорошие значения гиперпараметров и когда поиск по сетке перестаёт работать?
Как искать хорошие значения гиперпараметров и когда поиск по сетке перестаёт работать?
Берут значения с минимальной ошибкой на отложенной выборке или кросс-валидации. Стратегии: сетка, случайный поиск или байесовская оптимизация (optuna, hyperopt). Сетка ломается после двух-трёх параметров — её размер растёт экспоненциально.
Типичные ошибки
- ✗Валидируют на обучающей выборке вместо отложенной или кросс-валидации
- ✗По умолчанию берут поиск по сетке даже при многих гиперпараметрах
- ✗Не знают, что optuna/hyperopt используют байесовскую оптимизацию, а не полный перебор
Уточняющие вопросы
- →Почему случайный поиск часто обыгрывает сетку при том же бюджете оценок?
- →Что моделирует байесовская оптимизация, чтобы выбрать следующую точку для проверки?
MiddleТеорияОчень частоКак устроен Random Forest и где именно выбирается случайное подмножество признаков?
Как устроен Random Forest и где именно выбирается случайное подмножество признаков?
Random Forest — это бэггинг над решающими деревьями плюс метод случайного подпространства. Ключевое: в КАЖДОЙ вершине берётся новое случайное подмножество признаков, лучшее разбиение ищут только среди него, а не один раз на дерево. Выбор в вершине декоррелирует деревья.
Типичные ошибки
- ✗Говорят, что подмножество признаков фиксировано на дерево, а не выбирается в каждой вершине
- ✗Описывают RF как последовательный/бустинговый
- ✗Забывают, что RF сочетает бутстрап-сэмплирование с методом случайного подпространства
Уточняющие вопросы
- →Почему выбор признаков на дерево вредит, когда несколько признаков очень информативны?
- →Как выбор в каждой вершине снижает корреляцию между деревьями?
JuniorТеорияЧастоЧто такое бэггинг?
Что такое бэггинг?
Бэггинг — bootstrap aggregation. Берут несколько бутстрап-выборок (объекты с возвращением), на каждой обучают модель и агрегируют — усреднением для регрессии, голосованием для классификации. Независимые ошибки гасятся, разброс падает.
Типичные ошибки
- ✗Путают бэггинг (параллельный, независимый) с бустингом (последовательный, по остаткам)
- ✗Забывают, что бутстрап-сэмплирование идёт с возвращением
- ✗Думают, что базовые модели учатся на одних данных, а не на пересэмплированных
Уточняющие вопросы
- →Что происходит со смещением и разбросом при бэггинге многих моделей?
- →Что получится, если делать бэггинг над линейными моделями?
MiddleТеорияЧастоКакие гиперпараметры GBDT стоит подбирать в первую очередь?
Какие гиперпараметры GBDT стоит подбирать в первую очередь?
Важнейшие — глубина дерева (или число листьев), задающая ёмкость; learning rate, масштабирующий вклад дерева; минимальное число объектов в листе; коэффициенты L1/L2-регуляризации на значения листьев. Глубина и learning rate взаимодействуют.
Типичные ошибки
- ✗Подбирают нерелевантные параметры (seed, число тредов) вместо контролей ёмкости
- ✗Игнорируют взаимодействие learning rate и числа деревьев
- ✗Забывают про коэффициенты регуляризации на значения листьев
Уточняющие вопросы
- →Как learning rate и число деревьев уравновешивают друг друга?
- →Что играет роль весов в L1/L2-регуляризации GBDT?
MiddleТеорияЧастоКакие реализации градиентного бустинга ты знаешь и чем отличаются их деревья?
Какие реализации градиентного бустинга ты знаешь и чем отличаются их деревья?
Основные — CatBoost, LightGBM, XGBoost. CatBoost строит oblivious (симметричные) деревья — один признак и порог на уровень, отсюда быстрый инференс. LightGBM растит leaf-wise: делит лист с наибольшим падением потерь, деревья глубже и асимметричны.
Типичные ошибки
- ✗Путают, какая библиотека использует oblivious-деревья, а какая leaf-wise рост
- ✗Называют варианты бустинга (AdaBoost) вместо библиотек GBDT
- ✗Думают, что библиотеки различаются лишь скоростью, а не структурой деревьев
Уточняющие вопросы
- →Почему oblivious-деревья дают особенно быстрый инференс?
- →Когда leaf-wise рост приводит к переобучению?
MiddleТеорияЧастоЧто такое стекинг и блендинг и чем они отличаются?
Что такое стекинг и блендинг и чем они отличаются?
Стекинг обучает разные базовые модели, а затем — мета-модель на их OUT-OF-FOLD предсказаниях (каждая предсказывает на данных, где не обучалась), объединяя без утечки. Блендинг же обучает мета-модель на одной отложенной выборке.
Типичные ошибки
- ✗Обучают мета-модель на in-sample предсказаниях базовых моделей, допуская утечку таргета
- ✗Путают стекинг с бэггингом/бустингом вместо обучаемого объединителя
- ✗Забывают, что блендинг использует отложенную выборку, а не out-of-fold предсказания
Уточняющие вопросы
- →Почему мета-модель нужно обучать на out-of-fold предсказаниях?
- →Какие базовые модели делают стекинг-ансамбль сильнее всего?
SeniorТеорияЧастоКак бэггинг влияет на смещение и разброс предсказания?
Как бэггинг влияет на смещение и разброс предсказания?
Смещение почти не меняется; разброс уменьшается — в идеале в N раз (число моделей), но лишь при некоррелированных предсказаниях. На практике они скоррелированы, выигрыш меньше; поэтому Random Forest декоррелирует деревья.
Типичные ошибки
- ✗Утверждают, что бэггинг снижает смещение, а не разброс
- ✗Называют снижение разброса в N раз без условия некоррелированности
- ✗Не связывают оговорку про корреляцию с декорреляцией деревьев в RF
Уточняющие вопросы
- →Почему корреляция между моделями ограничивает снижение разброса?
- →Как Random Forest подталкивает модели к некоррелированности?
SeniorТеорияЧастоRF и бустинг остановлены при равной валидационной ошибке. Что станет с каждым после ещё 10k деревьев?
RF и бустинг остановлены при равной валидационной ошибке. Что станет с каждым после ещё 10k деревьев?
Random Forest — валидационная ошибка почти прежняя: лишние деревья уточняют усреднение, бэггинг не переобучается от их числа. Бустинг — ошибка УХУДШИТСЯ: он подгоняет остатки ансамбля, за оптимумом переобучается, нужна ранняя остановка.
Типичные ошибки
- ✗Думают, что Random Forest переобучается с ростом числа деревьев
- ✗Считают, что бустинг тоже устойчив к числу деревьев
- ✗Верят, что больше деревьев всегда снижает валидационную ошибку любого ансамбля
Уточняющие вопросы
- →Почему бустинг склонен к переобучению при перетренировке, а RF нет?
- →Какую роль играет learning rate в отсрочке переобучения бустинга?
MiddleТеорияИногдаЧто получится, если сделать бэггинг над линейными моделями?
Что получится, если сделать бэггинг над линейными моделями?
Снова линейную модель — среднее нескольких гиперплоскостей само является гиперплоскостью. Бэггинг окупается снижением разброса, но линейные модели и так низкодисперсны и высокосмещены, поэтому гасить нечего.
Типичные ошибки
- ✗Считают, что бэггинг делает линейную модель нелинейной
- ✗Не понимают, что сумма гиперплоскостей — всё ещё гиперплоскость
- ✗Игнорируют, что бэггинг окупается лишь для высокодисперсных моделей
Уточняющие вопросы
- →Почему высокодисперсные модели вроде глубоких деревьев выигрывают от бэггинга больше всего?
- →Какое свойство деревьев Random Forest добавляет поверх бэггинга?
MiddleТеорияИногдаЧем Extremely Randomized Trees отличаются от Random Forest и чем это оплачено?
Чем Extremely Randomized Trees отличаются от Random Forest и чем это оплачено?
Extra Trees, как и Random Forest, берут случайное подмножество признаков в узле, но порог разбиения выбирают случайно, а не оптимизируют. Это сильнее декоррелирует деревья и снижает разброс ценой большего смещения каждого дерева.
Типичные ошибки
- ✗Думают, что Extra Trees всё ещё ищут оптимальный порог в каждом узле
- ✗Переворачивают компромисс — лишняя случайность повышает смещение и снижает разброс
- ✗Путают Extra Trees с бустингом вместо ансамбля бэггингового типа
Уточняющие вопросы
- →Почему случайный выбор порога делает обучение Extra Trees быстрее?
- →На каких данных Extra Trees проиграют Random Forest?
MiddleТеорияИногдаЧто такое out-of-bag ошибка в Random Forest и может ли она заменить валидацию?
Что такое out-of-bag ошибка в Random Forest и может ли она заменить валидацию?
Каждое дерево обучается на бутстрап-выборке, поэтому примерно треть объектов для него out-of-bag. Предсказывая объект только теми деревьями, что его не видели, получаем честную оценку даром — OOB заменяет отложенную выборку.
Типичные ошибки
- ✗Думают, что OOB ошибка считается на той же бутстрап-выборке, где дерево обучалось
- ✗Считают, что OOB переносится на бустинг, где у моделей нет отложенных объектов
- ✗Игнорируют OOB и всегда отрезают лишнюю отложенную выборку даже на малых данных
Уточняющие вопросы
- →Почему примерно треть выборки остаётся вне каждой бутстрап-выборки?
- →Когда всё же лучше взять честную отложенную выборку, а не OOB оценку?
MiddleТеорияИногдаЖёсткое голосование против мягкого в ансамбле — когда усреднение вероятностей выигрывает?
Жёсткое голосование против мягкого в ансамбле — когда усреднение вероятностей выигрывает?
Жёсткое голосование считает предсказанные метки, мягкое усредняет вероятности. Мягкое обычно выигрывает, так как уверенные модели весят больше сомневающихся, но лишь если все участники откалиброваны, иначе среднее подчиняет одна модель.
Типичные ошибки
- ✗Применяют мягкое голосование к неоткалиброванным моделям, и одна самоуверенная модель доминирует
- ✗Считают, что мягкое голосование безусловно лучше жёсткого
- ✗Путают определения — мягкое голосование усредняет вероятности, а не метки
Уточняющие вопросы
- →Какими методами калибровки вы бы сначала обработали участников ансамбля?
- →Когда жёсткое голосование безопаснее, несмотря на потерю информации?
SeniorТеорияИногдаПять сильных моделей с сильно скоррелированными ошибками почти не дают прироста. Почему?
Пять сильных моделей с сильно скоррелированными ошибками почти не дают прироста. Почему?
Усреднение гасит только ту часть ошибки, которая различается у моделей. Если все пять ошибаются на одних объектах, ошибка ансамбля равна ошибке одной модели. В точность ансамбль превращает разнообразие, а не силу отдельных моделей.
Типичные ошибки
- ✗Отбирают участников ансамбля только по индивидуальной точности, игнорируя корреляцию ошибок
- ✗Считают, что больше моделей всегда лучше, независимо от их скоррелированности
- ✗Полагают, что сильные базовые модели автоматически дают сильный ансамбль
Уточняющие вопросы
- →Как бы вы измерили корреляцию ошибок между кандидатами в ансамбль?
- →Какие практические рычаги создают настоящее разнообразие между участниками?
SeniorТеорияИногдаИспользует ли GBDT L1/L2-регуляризацию и что играет роль штрафуемых весов?
Использует ли GBDT L1/L2-регуляризацию и что играет роль штрафуемых весов?
Да. Регуляризуются ЗНАЧЕНИЯ В ЛИСТЬЯХ — выходы листьев играют роль весов. Функционал XGBoost добавляет Ω = γT + ½λ·Σwⱼ² (L2 на веса листьев wⱼ плюс штраф γT), доступна и L1. Штраф на них уменьшает вклад каждого дерева и сдерживает переобучение.
Типичные ошибки
- ✗Говорят, что у деревьев нет весов, поэтому регуляризация невозможна
- ✗Штрафуют пороги разбиения вместо значений листьев
- ✗Путают регуляризацию значений листьев с ранней остановкой
Уточняющие вопросы
- →Что штрафует член
γTв функционале XGBoost? - →Как уменьшение значений листьев связано с learning rate?
SeniorДизайнИногдаДля низколатентного инференса в продакшене часто предпочитают градиентный бустинг, а не Random Forest. Объясните почему, учитывая глубину деревьев и довод, что Random Forest можно просто распараллелить по деревьям.
Для низколатентного инференса в продакшене часто предпочитают градиентный бустинг, а не Random Forest. Объясните почему, учитывая глубину деревьев и довод, что Random Forest можно просто распараллелить по деревьям.
Random Forest нужны глубокие деревья с малым смещением, инференс медленный. Бустинг берёт неглубокие деревья при сопоставимом качестве и быстрее. Довод про параллелизм RF не работает: GBDT тоже параллелится, а на одном примере накладные расходы на треды перевешивают.
Типичные ошибки
- ✗Списывают разрыв в скорости на число деревьев, а не на их глубину
- ✗Считают, что GBDT нельзя распараллелить на инференсе
- ✗Игнорируют накладные расходы на запуск тредов при скоринге по одному примеру
Уточняющие вопросы
- →Почему Random Forest нужны именно глубокие деревья с малым смещением?
- →Когда батчевый (а не по одному примеру) инференс меняет этот анализ?
SeniorТеорияИногдаПочему встроенная impurity-важность в Random Forest завышает признаки с высокой кардинальностью?
Почему встроенная impurity-важность в Random Forest завышает признаки с высокой кардинальностью?
Много различных значений — много кандидатных порогов, поэтому разбиение случайно снижает impurity, и важность копится даже у шума. Лечение — permutation importance: перемешать признак на отложенных данных и измерить падение метрики.
Типичные ошибки
- ✗Доверяют встроенной impurity-важности при сравнении признаков разной кардинальности
- ✗Считают, что высокая оценка важности доказывает наличие настоящего сигнала
- ✗Считают permutation importance на обучающих данных вместо отложенных
Уточняющие вопросы
- →Почему permutation importance нужно считать на отложенных данных?
- →Как сильно скоррелированные признаки искажают permutation importance?
SeniorТеорияИногдаЧто ломается, если мета-модель стекинга обучить на in-fold предсказаниях базовых моделей?
Что ломается, если мета-модель стекинга обучить на in-fold предсказаниях базовых моделей?
На строках обучения базовая модель выглядит неправдоподобно точной, поэтому мета-модель видит предсказания лучше продовых. Она учится доверять переобученному участнику, веса выходят неверными, а валидация хвалит стек.
Типичные ошибки
- ✗Получают предсказания базовых моделей на тех же строках, где они обучались
- ✗Доверяют валидационной оценке стека, не проверив, как получены предсказания базовых моделей
- ✗Ждут, что утечка проявится плохой метрикой на валидации, а не завышенной
Уточняющие вопросы
- →Как правильно получить out-of-fold предсказания для мета-модели?
- →Почему разбиение на фолды должно быть одинаковым для всех базовых моделей?