Композиционные методы
Материал из MachineLearning.
| | Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Д. Жумабеков 21:27, 19 июля 2026 (MSD) |
Введение
Пусть — обучающая выборка,
— семейство базовых алгоритмов (базовых моделей), каждый из которых по отдельности решает задачу прогнозирования с некоторым, как правило невысоким, качеством. Композиционным методом (ансамблем) называется способ построения итогового алгоритма
где — корректирующая (агрегирующая) функция, объединяющая ответы базовых алгоритмов в единый прогноз. Мотивация построения композиции — эмпирический и теоретически обоснованный факт: ошибка согласованно скомбинированных базовых алгоритмов может оказаться существенно ниже ошибки любого из них по отдельности, если базовые алгоритмы допускают разнородные, слабо коррелированные ошибки.
По способу обучения базовых алгоритмов композиционные методы делятся на два класса.
- Параллельное (одновременное) обучение. Базовые алгоритмы
обучаются независимо друг от друга, как правило, на различных подвыборках или подпространствах признаков, после чего объединяются корректирующей функцией, не зависящей от процесса обучения базовых моделей. К этому классу относится Бэггинг.
- Последовательное обучение. Каждый следующий базовый алгоритм
строится с учётом качества работы уже построенной композиции
, как правило, с целью исправления её текущих ошибок. К этому классу относится Бустинг.
Существенно, что оба класса решают одну и ту же общую задачу — снижение ошибки итогового алгоритма относительно ошибки базовых моделей, — но, как показано в следующем разделе, делают это за счёт принципиально разных механизмов, связанных с разложением ошибки на смещение и разброс.
Смещение и разброс
Пусть ошибка алгоритма , обученного по случайной выборке
, измеряется квадратичным функционалом. Усредняя по всем возможным обучающим выборкам фиксированного объёма, ожидаемую квадратичную ошибку алгоритма в точке
можно разложить на три неотрицательных слагаемых:
где
— смещение (bias), систематическое отклонение среднего по выборкам ответа алгоритма от истинной зависимости , и
— разброс (variance), чувствительность ответа алгоритма к конкретной реализации обучающей выборки; — неустранимый шум в данных, не зависящий от выбора алгоритма. Высокое смещение типично для слишком простых, негибких моделей (недообучение), высокий разброс — для слишком гибких моделей, чрезмерно подстраивающихся под конкретную выборку (Переобучение).
Ключевое наблюдение, лежащее в основе композиционных методов: усреднение нескольких некоррелированных алгоритмов с одинаковым смещением снижает разброс композиции пропорционально при
независимых базовых алгоритмах, не увеличивая при этом смещения, — на этом принципе строится Бэггинг. Напротив, последовательная коррекция систематических ошибок предыдущих алгоритмов, лежащая в основе бустинга, направлена в первую очередь на снижение смещения, поскольку каждый следующий базовый алгоритм целенаправленно уменьшает ту часть ошибки, которая систематически не устранена предыдущими членами композиции.
Простое и взвешенное голосование
Простейшая корректирующая функция для задачи классификации — простое голосование: каждый базовый алгоритм голосует за класс, который он предсказывает, и итоговый ответ определяется классом, набравшим больше всего голосов:
Если базовые алгоритмы допускают ошибки независимо друг от друга с вероятностью ошибки каждый, простое голосование нечётного числа таких алгоритмов снижает вероятность ошибки композиции экспоненциально по
— это классический результат, объясняющий эффективность усреднения при низкой скоррелированности ошибок базовых моделей.
Взвешенное голосование обобщает эту схему, приписывая каждому базовому алгоритму вес , отражающий степень доверия к нему:
Эта конструкция в точности совпадает со схемой агрегирования логических закономерностей в классификаторе на основе набора правил: каждое правило , будучи интерпретируемым бинарным классификатором одного класса, естественно рассматривается как частный случай базового алгоритма
, а его вес
— как мера информативности правила относительно своего класса. Таким образом, взвешенное голосование правил — частный случай общей схемы композиционных методов, в котором базовые алгоритмы обладают дополнительным свойством интерпретируемости.
Бэггинг и случайный лес
Бэггинг (bagging, bootstrap aggregating) реализует параллельную схему обучения композиции за счёт следующей идеи: вместо обучения единственного алгоритма по всей выборке строится
независимых алгоритмов
, каждый из которых обучается по собственной бутстреп-выборке
— выборке объёма
, полученной случайным выбором объектов из
с возвращением. Итоговый алгоритм — простое (для регрессии — усреднение, для классификации — голосование) объединение ответов:
Поскольку бутстреп-выборки получены из одного и того же распределения, все
имеют приблизительно одинаковое смещение, совпадающее со смещением базового алгоритма, обученного по всей выборке; усреднение при этом снижает разброс композиции без существенного изменения смещения — в полном соответствии с разложением, приведённым в разделе «Смещение и разброс». Бэггинг наиболее эффективен для базовых алгоритмов с высоким разбросом и низким смещением — в первую очередь для глубоких решающих деревьев, не подвергнутых стрижке.
Случайный лес дополняет схему бэггинга решающих деревьев ещё одним источником случайности: при построении каждой вершины дерева оптимальный признак для разбиения ищется не среди всех признаков, а среди случайно выбранного подмножества из
признаков (типичный выбор —
для классификации и
для регрессии). Такое случайное подпространство признаков дополнительно снижает корреляцию между деревьями композиции, что усиливает эффект снижения разброса при усреднении, поскольку эффективность усреднения тем выше, чем слабее коррелированы усредняемые алгоритмы.
Специфическая особенность бэггинга, отсутствующая у последовательных методов, — возможность получить несмещённую оценку ошибки композиции без отдельной контрольной выборки. Поскольку каждая бутстреп-выборка в среднем содержит около
исходных объектов, оставшиеся приблизительно
объектов — out-of-bag (OOB) объекты — не участвовали в обучении дерева
и могут быть использованы для его тестирования. Усредняя ошибку каждого объекта
только по тем деревьям, для которых он был out-of-bag, получают OOB-оценку ошибки композиции:
где — множество индексов деревьев, для которых объект
был out-of-bag, а
— функция потерь. OOB-оценка асимптотически эквивалентна оценке по скользящему контролю, но вычисляется за один проход обучения без дополнительных вычислительных затрат.
Стэкинг и смесь экспертов
Обобщающий стэкинг (stacking) отказывается от заранее фиксированной корректирующей функции в пользу обучаемой: помимо базовых алгоритмов обучается мета-алгоритм
, принимающий на вход вектор ответов базовых алгоритмов
и обученный предсказывать по нему целевую переменную
:
Принципиальная методологическая трудность стэкинга — необходимость избежать переобучения мета-алгоритма на ответах базовых моделей, вычисленных на тех же объектах, на которых эти модели обучались (в этом случае ответы искусственно завышают качество, недостижимое на новых данных). Стандартное решение — вычислять признаки для мета-алгоритма по схеме скользящего контроля: выборка делится на
блоков, для каждого блока базовые алгоритмы обучаются на остальных
блоках, а их ответы на отложенном блоке используются как обучающие признаки мета-алгоритма.
Взвешенный стэкинг с признак-зависимыми весами — частный случай, в котором мета-алгоритм ограничен линейной по ответам базовых моделей формой с весами, зависящими от самого объекта:
где ,
— функции компетентности, показывающие, насколько базовому алгоритму
стоит доверять именно в точке
. В отличие от простого взвешенного голосования, где веса
постоянны по всему пространству
, здесь вес каждого базового алгоритма может меняться от объекта к объекту.
Смесь экспертов (mixture of experts) формализует эту идею, вводя явную функцию компетентности (gating function) , которая сама является обучаемой моделью, предсказывающей вероятность того, что эксперт
компетентен на объекте
:
где — некоторая параметрическая функция (как правило, линейная по признакам), обучаемая совместно с экспертами
максимизацией правдоподобия композиции. В качестве иллюстрации: пусть имеются два эксперта —
, специализирующийся на объектах с малым значением некоторого признака, и
, специализирующийся на объектах с большим значением того же признака; тогда обученная функция компетентности
будет близка к единице в области малых значений признака и близка к нулю в области больших значений, плавно передавая ответственность за прогноз от одного эксперта к другому в переходной зоне. В отличие от бэггинга и бустинга, смесь экспертов явно моделирует неоднородность признакового пространства, в разных областях которого целесообразны структурно различные модели.
Градиентный бустинг с произвольной функцией потерь
Пусть — произвольная дифференцируемая по
функция потерь (квадратичная для регрессии, логистическая для классификации и так далее), и композиция строится аддитивно:
Задача обучения композиции состоит в минимизации эмпирического риска
по всем функциям вида, допускаемого композицией. Прямая минимизация по параметрам сразу всех
базовых алгоритмов, как правило, вычислительно неосуществима; градиентный бустинг решает эту задачу приближённо — как функциональный градиентный спуск в пространстве значений алгоритма на обучающей выборке.
Формально рассмотрим вектор текущего приближения на обучающих объектах
как единственный аргумент функционала , определённого уже не на пространстве функций, а на конечномерном пространстве
. Направление наискорейшего убывания
в точке
задаётся антиградиентом:
Величины называются псевдо-остатками: это координаты направления, в котором нужно сдвинуть вектор ответов композиции
на обучающих объектах, чтобы наискорейшим образом уменьшить суммарные потери. Если бы значения
в точках
можно было менять независимо друг от друга, оптимальным шагом был бы в точности сдвиг
. Однако
должна быть определена не только на обучающих объектах, но и на всём пространстве
, поэтому истинный антиградиент
заменяется его параметрической аппроксимацией — новый базовый алгоритм
обучается решать задачу регрессии на псевдо-остатки:
то есть приближает направление антиградиента функцией, обобщающейся на весь , а не только на обучающие точки. После того как направление
найдено, вдоль него производится одномерный поиск оптимального шага — коэффициента
, минимизирующего исходный функционал потерь вдоль выбранного направления:
после чего композиция обновляется: . В отличие от бэггинга, где базовые алгоритмы независимы и минимизация происходит по разбросу, здесь каждый следующий базовый алгоритм целенаправленно устраняет ту часть ошибки, которую не устранили предыдущие, — механизм, последовательно уменьшающий смещение композиции[1].
Для квадратичной функции потерь антиградиент в точке
равен
, то есть с точностью до постоянного множителя совпадает с обычными остатками регрессии — отсюда и происходит название «псевдо-остатки» для общего случая произвольной функции потерь.
Алгоритм градиентного бустинга
Вход: обучающая выборка ; функция потерь
; число итераций
; темп обучения (learning rate)
.
Выход: композиция .
- Инициализировать начальное приближение константой:
.
- Для
:
- Вычислить псевдо-остатки на текущем приближении:
для всех
.
- Обучить базовый алгоритм
на задаче регрессии, приближающей псевдо-остатки:
.
- Найти оптимальный шаг вдоль направления
:
.
- Обновить композицию с учётом темпа обучения:
.
- Вычислить псевдо-остатки на текущем приближении:
- Вернуть
.
Темп обучения , уменьшающий вклад каждого отдельного базового алгоритма, — стандартный инструмент регуляризации градиентного бустинга: меньшие значения
требуют большего числа итераций
, но снижают риск переобучения композиции на обучающей выборке. Дополнительными средствами регуляризации служат ограничение глубины базовых деревьев
и стохастический вариант алгоритма, в котором на каждой итерации базовый алгоритм обучается по случайной подвыборке объектов и/или признаков — по аналогии с идеей стохастического градиентного спуска, перенесённой из пространства параметров в пространство функций.
Практическое применение: прогнозирование оттока клиентов
Рассмотрим задачу бинарной классификации: по табличным признакам клиента — длительность обслуживания в компании (мес.), число обращений в поддержку за последний квартал, среднемесячный платёж — требуется предсказать, расторгнет ли клиент договор в следующем периоде. Метка класса , где
— отток. В качестве функции потерь используется логистическая функция:
для которой антиградиент имеет вид
Пусть на первой итерации начальное приближение — константа , где
— доли клиентов с оттоком и без оттока в обучающей выборке (логарифм отношения шансов, минимизирующий логистические потери на константе). Пусть, например, отток наблюдается у 20% клиентов, тогда
для всех клиентов.
Шаг 1. Вычисление псевдо-остатков. Для клиента с меткой (действительно ушёл) псевдо-остаток равен
— положительная величина, указывающая, что предсказание нужно сдвинуть в сторону оттока. Для клиента с меткой
(остался) псевдо-остаток равен
— отрицательная величина, указывающая, что предсказание для такого клиента уже смещено в верном направлении и корректировка должна быть небольшой. Псевдо-остатки вычисляются для каждого клиента обучающей выборки, образуя новую целевую переменную для регрессии.
Шаг 2. Подбор базового алгоритма. На множестве пар (признаки клиента, псевдо-остаток) обучается неглубокое решающее дерево регрессии — например, глубины 2–3, — приближающее псевдо-остатки. Полученное дерево может, к примеру, выделить подгруппу «число обращений в поддержку за квартал больше трёх и длительность обслуживания менее шести месяцев» как область с систематически высоким псевдо-остатком, то есть с высоким риском оттока, не объяснённым текущим (пока константным) приближением.
Шаг 3. Поиск оптимального шага. Для найденного направления решается одномерная задача минимизации логистических потерь по
; поскольку явного решения в замкнутом виде для логистической функции потерь нет, оптимальный шаг находится численно (например, методом Ньютона по одной переменной либо простым одномерным поиском), после чего композиция обновляется:
.
Последующие итерации повторяют шаги 1–3, вычисляя псевдо-остатки уже на обновлённом приближении : клиенты, для которых дерево
уже дало корректную поправку, получат псевдо-остатки, близкие к нулю, и не будут существенно влиять на обучение
, тогда как клиенты со всё ещё неверным прогнозом (например, ушедшие клиенты с низким числом обращений в поддержку, не выделенные деревом
) сформируют псевдо-остатки, на которые нацелится следующее дерево. Итоговый классификатор оттока — знак композиции
после
итераций, а величина
интерпретируется как оценка вероятности оттока конкретного клиента.
Современные реализации
Три наиболее распространённые библиотеки градиентного бустинга над решающими деревьями различаются деталями реализации общей схемы, изложенной выше, при сохранении единого принципа функционального градиентного спуска.
XGBoost явно включает в критерий построения дерева регуляризационное слагаемое, штрафующее число листьев дерева и величину значений в листьях (аналог /
-регуляризации), а также использует приближение вторыми производными функции потерь (аналог метода Ньютона) при выборе структуры дерева, а не только первыми производными (антиградиентом), как в классической схеме Фридмана. Деревья строятся послойно (level-wise) с ограничением максимальной глубины.
LightGBM отличается стратегией роста дерева: вместо послойного роста используется поразрядный (leaf-wise) рост — на каждом шаге расщепляется тот лист дерева, который даёт наибольшее уменьшение функции потерь, независимо от глубины, что при равном числе листьев даёт более точные, но и более склонные к переобучению деревья, обычно компенсируемые ограничением максимальной глубины. Дополнительно LightGBM использует гистограммное представление признаков для ускорения перебора порогов расщепления и нативную поддержку категориальных признаков через разбиение по подмножествам категорий, а не через предварительное однократное кодирование.
CatBoost сосредоточен на корректной обработке категориальных признаков и устранении систематического смещения (target leakage), возникающего при наивной замене категории статистикой целевой переменной по этой категории, вычисленной на той же обучающей выборке. Для этого используется упорядоченное статистическое кодирование (ordered target statistics): для каждого объекта статистика по категориальному признаку вычисляется только по объектам, предшествующим ему в некотором случайном порядке, что эмулирует честную схему скользящего контроля внутри самого процесса построения признаков. Кроме того, CatBoost использует симметричные (oblivious) деревья, в которых на всех вершинах одного уровня используется одно и то же условие расщепления, что ускоряет применение модели и служит дополнительной формой регуляризации.
Сравнение методов
| Критерий | Бэггинг | Бустинг | Стэкинг |
|---|---|---|---|
| Обучение базовых алгоритмов | параллельное, независимое | последовательное, каждый следующий зависит от предыдущих | параллельное для базовых алгоритмов, отдельное для мета-алгоритма |
| Основной эффект на ошибку | снижает разброс (variance) | снижает смещение (bias) | снижает и смещение, и разброс за счёт обучаемой корректирующей функции |
| Параллелизуемость обучения | полная | отсутствует (строго последовательная схема) | полная для базовых алгоритмов |
| Устойчивость к переобучению | высокая при росте | требует регуляризации (темп обучения, глубина деревьев, число итераций) | зависит от корректности схемы скользящего контроля при построении мета-признаков |
| Типичные базовые алгоритмы | алгоритмы с низким смещением и высоким разбросом (глубокие деревья) | алгоритмы с высоким смещением и низким разбросом (неглубокие деревья) | разнородные по своей природе алгоритмы (деревья, линейные модели, метрические методы) |
| Интерпретируемость | ниже отдельного дерева, но допускает оценку важности признаков | ниже отдельного дерева, но допускает оценку важности признаков | как правило, наименьшая среди трёх схем из-за дополнительного уровня мета-алгоритма |

