Градиентный бустинг и ансамбли
Подтемы:
В чем смысл обучения на антиградиенте?
В градиентном бустинге новая модель приближает антиградиент функции потерь по текущим предсказаниям ансамбля. Для квадратичной ошибки антиградиент пропорционален обычным остаткам. Для других потерь используются соответствующие псевдоостатки.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- #2 Успешное собеседование в Яндекс | Секция Machine Learning · 2:29–4:35Разбор интервью · Совместный разбор
Участники связывают антиградиент с направлением исправления ошибки: для MSE он соответствует остатку, а для других функций потерь даёт обобщённый обучающий сигнал следующему дереву.
Какие есть преимущества и недостатки у градиентного бустинга?
Преимущества градиентного бустинга:
-
Высокая точность: Градиентный бустинг обычно обеспечивает высокую точность предсказаний за счет комбинации нескольких слабых моделей в сильный ансамбль.
-
Контроль сложности: скорость обучения, глубина деревьев и ранняя остановка помогают уменьшать переобучение. Само последовательное добавление деревьев от него не защищает.
-
Адаптивность к данным: Алгоритм способен эффективно обрабатывать данные с различными типами признаков и распределениями.
Недостатки градиентного бустинга:
-
Чувствительность к гиперпараметрам: Настройка гиперпараметров градиентного бустинга может потребовать значительных усилий и вычислительных ресурсов.
-
Переобучение: слишком много итераций или слишком сложные деревья могут ухудшить качество на новых данных. Это возможно и на маленьких выборках.
-
Время обучения: Градиентный бустинг может быть более медленным в обучении, особенно если используются большие наборы данных или сложные модели.
Ссылки для изучения
Как именно получается итоговый ответ при градиентном бустинге?
В градиентном бустинге итоговый ответ получается путем суммирования предсказаний всех моделей (обычно деревьев решений), которые составляют ансамбль. Каждая модель делает свое предсказание на основе обученного алгоритма, и их предсказания объединяются с помощью весов, которые могут быть заданы заранее или подобраны в процессе обучения. В итоге получается сумма предсказаний всех моделей, которая и является итоговым ответом ансамбля градиентного бустинга.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- #2 Успешное собеседование в Яндекс | Секция Machine Learning · 1:50–3:25Разбор интервью · Ответ кандидата
Кандидат описывает последовательные деревья на антиградиенте и суммирование их корректировок в итоговый прогноз.
Может ли градиентый бустинг переобучиться с увеличением количества деревьев?
Да, градиентный бустинг может переобучиться с увеличением количества деревьев. При добавлении большего числа деревьев к ансамблю, модель может начать “запоминать” тренировочные данные, что может привести к переобучению. Чтобы предотвратить это, важно правильно настраивать гиперпараметры модели, такие как максимальная глубина деревьев, скорость обучения и количество деревьев.
Ссылки для изучения
Какой глубины деревья используются в градиентном бустинге?
В градиентном бустинге глубина деревьев обычно ограничивается, чтобы предотвратить переобучение и повысить обобщающую способность модели. Точное значение глубины деревьев зависит от конкретной задачи, набора данных и других гиперпараметров модели. Обычно используются деревья небольшой глубины, например, от 3 до 6 уровней, чтобы каждое дерево было достаточно простым и недообученным, но при этом способным делать значимые предсказания.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- ЖЕСТКОЕ СОБЕСЕДОВАНИЕ В СБЕР на Data Scientist · 7:03–8:58Разбор интервью · Ответ кандидата
Кандидат объясняет использование неглубоких слабых деревьев в градиентном бустинге, где каждое следующее дерево корректирует ошибки композиции.
Как изменится величина метрики ошибки, такой как MAE, если удалить первое дерево из ансамбля бустинга? А если удалить последнее?
Если удалить первое дерево из ансамбля бустинга, то общее предсказание модели будет зависеть только от последующих моделей. Это может привести к изменению предсказаний и, следовательно, к изменению величины метрики ошибки, такой как MAE. Однако, величина изменения зависит от того, насколько важным оказался вклад первого дерева в общее предсказание.
Если удалить последнее дерево из ансамбля бустинга, то также изменится общее предсказание модели и, соответственно, величина метрики ошибки. Опять же, величина изменения зависит от того, насколько важным был вклад последнего дерева в общее предсказание.
Ссылки для изучения
Когда бустинг менее эффективен, чем линейная регрессия?
Бустинг может быть менее эффективен, чем линейная регрессия, в следующих случаях:
-
Линейная зависимость: Если зависимость между признаками и целевой переменной близка к линейной, то линейная регрессия может быть более эффективной, так как она может моделировать эту зависимость непосредственно.
-
Простота модели: Если данные хорошо аппроксимируются простой моделью, то бустинг, который строит сложные ансамбли деревьев, может быть избыточным и сложным для данной задачи.
-
Большие объемы данных: В случае больших объемов данных и высоких требований к вычислительным ресурсам, линейная регрессия может быть более эффективной, так как обучение модели может быть более быстрым и менее затратным.
-
Простота интерпретации: Линейная регрессия обладает простой интерпретируемостью, что делает ее предпочтительной в ситуациях, где важно понимать вклад каждого признака в прогноз.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- КАЙФОВОЕ СОБЕСЕДОВАНИЕ В ВАЙЛДБЕРРИЗ (на data scientist) · 16:15–17:15Разбор интервью · Ответ кандидата
Кандидат сравнивает экстраполяцию: линейная регрессия продолжает тренд, а деревья и boosting ограничены листовыми областями.
Как происходит разбиение выборки в узле дерева у бустинга для задачи регрессии?
В бустинге для задачи регрессии обычно используются решающие деревья. Разбиение выборки в узле дерева происходит следующим образом:
-
Выбор признака и порога разбиения: Для каждого узла дерева выбирается оптимальный признак и пороговое значение, которые минимизируют ошибку на обучающей выборке.
-
Разбиение выборки: Выборка разбивается на две подвыборки в соответствии с выбранным признаком и порогом: одна подвыборка содержит объекты, для которых значение выбранного признака меньше или равно порогу, а другая подвыборка содержит объекты, для которых значение признака больше порога.
-
Построение дерева: Для каждого созданного подузла дерева рекурсивно повторяется процесс выбора признака и порога разбиения, пока не будет достигнут критерий остановки, такой как максимальная глубина дерева или минимальное количество объектов в узле.
-
Целевые значения на очередном шаге: для каждого объекта вычисляют антиградиент потерь по текущему прогнозу. При квадратичной ошибке он пропорционален остатку.
-
Обучение слабой модели: новое дерево приближает эти значения и добавляется к ансамблю с выбранным шагом обучения.
При выборе разбиения учитывают цель очередного шага бустинга и критерий дерева. Конкретные реализации могут использовать градиенты, гессианы и штрафы за сложность.
Ссылки для изучения
Как работает бустинг, какие у него виды и задачи? Чем его возможности отличаются от нейросетей?
Бустинг - это ансамблевый метод машинного обучения, который объединяет несколько слабых моделей (обычно деревьев решений) в одну сильную модель. Основная идея заключается в последовательном обучении моделей, каждая из которых исправляет ошибки предыдущей.
-
Принцип работы: Бустинг строит последовательность моделей, обучая каждую следующую модель таким образом, чтобы она исправляла ошибки предыдущей модели.
-
Зачем: Бустинг используется для решения различных задач машинного обучения, включая классификацию и регрессию. Он позволяет получить высокую точность предсказаний за счет комбинирования нескольких слабых моделей.
-
Умение решать то же самое, что и нейронные сети: Бустинг и нейронные сети могут использоваться для решения широкого спектра задач, но у них разные подходы к обучению и архитектуры. Нейронные сети обычно используются для задач, требующих сложных нелинейных зависимостей или обработки больших объемов данных, в то время как бустинг часто используется для обучения на небольших и средних наборах данных с хорошей интерпретируемостью.
-
Виды бустинга: Наиболее популярные алгоритмы бустинга включают AdaBoost, Gradient Boosting Machine (GBM), XGBoost, LightGBM и CatBoost. Каждый из этих алгоритмов имеет свои особенности, но общая идея остается той же - последовательное улучшение модели путем устранения ее ошибок.
Ссылки для изучения
Как работает градиентный бустинг?
Градиентный бустинг - это ансамблевый метод машинного обучения, который строит предсказательную модель в виде ансамбля слабых моделей, обычно деревьев решений, с помощью итеративного улучшения. Основная идея заключается в том, чтобы последовательно добавлять новые модели к ансамблю, каждая из которых исправляет ошибки предыдущей модели. Процесс обучения градиентного бустинга можно описать следующим образом:
-
Инициализация: выбирают постоянный прогноз, минимизирующий выбранную функцию потерь. Для квадратичной ошибки это среднее целевой переменной.
-
Вычисление псевдоостатков: для каждого объекта вычисляют отрицательный градиент потерь по текущему предсказанию. При квадратичной ошибке это обычный остаток с точностью до масштаба.
-
Построение новой модели для остатков: Обучаем новую модель (например, дерево решений) на остатках предыдущей модели. Новая модель настраивается таким образом, чтобы минимизировать остатки.
-
Добавление модели к ансамблю: Предсказания новой модели добавляются к предыдущим предсказаниям с учетом некоторого коэффициента, называемого темпом обучения (learning rate).
-
Итерации: Шаги 2-4 повторяются до тех пор, пока не будет достигнуто заданное количество моделей или пока не будет достигнуто определенное значение метрики качества.
Градиентный бустинг обеспечивает высокую точность и устойчивость за счет комбинирования нескольких слабых моделей в сильный ансамбль. Он широко используется в различных задачах, таких как классификация, регрессия и ранжирование.
Ссылки для изучения
Чем различаются CatBoost, XGBoost и LightGBM?
CatBoost силен на категориальных признаках: использует ordered statistics и симметричные деревья. LightGBM растит деревья leaf-wise, применяет histogram-алгоритм и обычно быстр на больших табличных данных, но может переобучаться на малых выборках без ограничений листьев. XGBoost чаще растит деревья level-wise или loss-guided в зависимости от настроек, имеет зрелую регуляризацию и распределенные режимы. Универсального победителя нет. Сравнивают на одном split по качеству, времени, памяти, стабильности и требованиям production.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Middle Data Scientist | Выпуск 1. Секция ML | Собеседование | karpov.courses · 44:52–47:15Мок-собеседование · Ответ кандидата
Кандидат объясняет обработку категорий и симметричные деревья CatBoost и сопоставляет их со стратегией роста LightGBM.
Как GOSS ускоряет обучение LightGBM?
GOSS сохраняет все объекты с большими по модулю градиентами, потому что модель ошибается на них сильнее, и случайно выбирает часть объектов с малыми градиентами. Вклад выбранных малых градиентов перевзвешивается, чтобы компенсировать sampling. Так LightGBM оценивает gain split на меньшем числе строк и ускоряет обучение. Это приближение может изменить качество, поэтому доли выборок и результат проверяют на validation. GOSS относится к выборке строк, а не признаков.
Ссылки для изучения
Как XGBoost выбирает направление для пропущенного значения?
При обучении XGBoost для каждого split пробует отправить строки с missing влево и вправо и выбирает направление с лучшим gain. Это направление сохраняется как default branch и применяется на инференсе, когда значение отсутствует. Механизм может использовать сам факт пропуска как сигнал. Если причины missing изменятся в production, качество упадет, поэтому долю и происхождение пропусков мониторят. Значения, заполненные кодом вроде -999, не считаются missing без соответствующей настройки.
Ссылки для изучения
Уменьшает ли ансамбль стекинга смещение модели?
Стекинг может уменьшить смещение или разброс, если базовые модели дополняют друг друга, но это не гарантировано. Метамодель обучают на прогнозах для объектов, не использованных при обучении соответствующей базовой модели, например out-of-fold прогнозах. Результат проверяют на независимой выборке.
Ссылки для изучения
Чем стекинг отличается от блендинга?
В stacking базовые модели строят out-of-fold прогнозы для всего train, и метамодель учится на них. Это лучше использует данные, но требует аккуратной кросс-валидации и больше вычислений. В blending часть train заранее откладывают как holdout: базовые модели учатся на остальном, а метамодель на прогнозах holdout. Это проще, но уменьшает данные для обоих уровней. Нельзя давать метамодели in-sample прогнозы базовых моделей. После выбора схемы базовые модели переобучают по зафиксированному протоколу.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- 100 Data Science вопросов мидлу! Парень c Физтеха проходит собеседование · 21:10–22:14Мок-собеседование · Ответ кандидата
Кандидат объясняет обучение метамодели: отдельная отложенная выборка в blending и out-of-fold предсказания базовых моделей в stacking.
Как можно объяснить концепцию разложения на смещение и разброс (bias-variance decomposition) в методе случайного леса (Random Forest)?
Разложение на смещение и разброс в методе случайного леса (Random Forest) можно объяснить следующим образом:
-
Смещение: отличие среднего прогноза по возможным обучающим выборкам от истинной зависимости. Глубокие деревья обычно имеют небольшое смещение и большой разброс; случайный выбор признаков может увеличить смещение.
-
Разброс (Variance): Вариация прогнозов модели для разных наборов данных. В случайном лесе, каждое дерево обучается на случайной подвыборке данных, что может привести к большому разбросу между прогнозами отдельных деревьев. Однако усреднение прогнозов множества деревьев позволяет уменьшить разброс и повысить обобщающую способность модели.
Усреднение в случайном лесе прежде всего уменьшает разброс. Оно само по себе не устраняет общее систематическое смещение деревьев.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- РЕАЛЬНОЕ собеседование на Data Scientist. Алгоритмы + Python · 32:10–33:08Разбор интервью · Ответ кандидата
Кандидат сопоставляет bias и variance случайного леса и boosting и связывает лес с меньшим разбросом прогнозов.
Как бэггинг влияет на смещение и дисперсию модели?
Бэггинг обучает модели на разных bootstrap-выборках и усредняет их прогнозы. Случайные ошибки отдельных моделей частично сокращаются, поэтому дисперсия ансамбля падает. Смещение базового алгоритма обычно меняется мало, а иногда немного растет из-за обучения на bootstrap-выборках. Чем сильнее коррелированы ошибки моделей, тем меньше выигрыш. Random Forest дополнительно случайно выбирает признаки на split, уменьшая корреляцию деревьев ценой возможного роста bias.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- 100 Data Science вопросов мидлу! Парень c Физтеха проходит собеседование · 20:03–21:10Мок-собеседование · Ответ кандидата
На сравнении bagging и boosting кандидат объясняет, как усреднение сложных моделей уменьшает разброс, а последовательное обучение простых моделей снижает смещение.
Почему градиентный бустинг снижает смещение, но может увеличить разброс?
Каждое новое дерево бустинга исправляет остаточные ошибки ансамбля, поэтому с ростом числа итераций уменьшается смещение. Но достаточно глубокие деревья могут начать подгонять шум, и прогноз становится чувствительнее к конкретной train-выборке. Риск сдерживают небольшой learning_rate, ограничение глубины или числа листьев, subsample, выборка признаков и регуляризация. Число итераций подбирают через early stopping на честной validation-выборке. Низкий train loss сам по себе не означает хорошее обобщение.
Ссылки для изучения







