EssayAI
Блог
Блог
Математика и алгоритмы

Бэггинг (bagging): как ансамбль снижает дисперсию модели

19 июня 2026Время чтения: 8 минут
#бэггинг#bagging#ансамблевые методы#случайный лес#бутстрэп
Бэггинг (bagging): как ансамбль снижает дисперсию модели

Когда одна модель машинного обучения слишком чувствительна к обучающей выборке, небольшое изменение данных сильно меняет её предсказания: это высокая дисперсия. Бэггинг (от bootstrap aggregating) борется именно с этим. Идея проста: обучаем не одну, а много одинаковых моделей на разных случайных подвыборках исходных данных, а затем усредняем их ответы. Ниже разберём механику метода, выведем, почему дисперсия падает, и покажем калькулятор, в котором видно, как число моделей в ансамбле снижает разброс итогового прогноза.

Что такое бэггинг

Бэггинг (bagging) - это ансамблевый метод, который строит набор базовых моделей на случайных бутстрэп-выборках и объединяет их предсказания голосованием (для классификации) или усреднением (для регрессии). Название расшифровывается как bootstrap aggregating - «бутстрэп-агрегирование».

Метод предложил Лео Брейман в 1996 году. Базовая модель в бэггинге называется слабым или базовым алгоритмом, хотя на практике это часто полноценные деревья решений. Главное требование к базовому алгоритму - он должен быть неустойчивым: иметь низкое смещение и высокую дисперсию. Тогда усреднение даст максимальный выигрыш.

Бэггинг относится к параллельным ансамблям: модели обучаются независимо друг от друга и ничего не знают о соседях. Это отличает его от бустинга в XGBoost, где каждая следующая модель исправляет ошибки предыдущих и обучение строго последовательно.

Бутстрэп: откуда берутся выборки

Сердце метода - бутстрэп-выборка. Из обучающего набора размера NN мы NN раз вытягиваем объект случайно с возвращением. Один и тот же объект может попасть в выборку несколько раз, а другой - не попасть вообще.

Вероятность, что конкретный объект не попадёт в одну бутстрэп-выборку, равна:

(11N)NN1e0,368.\left(1 - \frac{1}{N}\right)^{N} \xrightarrow{N \to \infty} \frac{1}{e} \approx 0{,}368.

То есть в среднем около 36,8% объектов в каждую выборку не попадают. Их называют out-of-bag (OOB) объектами: на них можно оценивать качество модели без отдельной валидационной выборки. Оставшиеся примерно 63,2% объектов и составляют один бутстрэп-набор, на котором обучается одна базовая модель.

OOB-оценка - бесплатный аналог кросс-валидации. Каждый объект служит «тестовым» для тех деревьев, в чьи бутстрэп-выборки он не попал, поэтому отдельный hold-out часто не нужен.

Как снижается дисперсия

Покажем главный эффект бэггинга формулой. Пусть каждая базовая модель даёт предсказание с дисперсией σ2\sigma^2, а попарная корреляция предсказаний разных моделей равна ρ\rho. Усредняя BB моделей, получаем дисперсию ансамбля:

Var ⁣(1Bi=1Bfi)=ρσ2+1ρBσ2.\operatorname{Var}\!\left(\frac{1}{B}\sum_{i=1}^{B} f_i\right) = \rho\,\sigma^2 + \frac{1 - \rho}{B}\,\sigma^2.

Здесь видна вся суть. Второе слагаемое 1ρBσ2\frac{1-\rho}{B}\sigma^2 убывает с ростом числа моделей BB и при больших BB стремится к нулю. А первое слагаемое ρσ2\rho\,\sigma^2 от BB не зависит - это «пол», ниже которого усреднением не опуститься.

Вывод: чем слабее коррелируют базовые модели (меньше ρ\rho), тем сильнее падает дисперсия. Если бы модели были полностью независимы (ρ=0\rho = 0), дисперсия упала бы в BB раз. На практике бутстрэп-выборки пересекаются, поэтому модели коррелируют и реальный выигрыш скромнее. Именно поэтому в случайном лесу добавляют ещё и случайный выбор признаков - чтобы дополнительно снизить ρ\rho.

Агрегация предсказаний

После обучения BB моделей их ответы нужно объединить. Способ зависит от задачи:

  • Регрессия - простое усреднение: y^=1Bi=1Bfi(x)\hat{y} = \frac{1}{B}\sum_{i=1}^{B} f_i(x).
  • Классификация - голосование большинством (hard voting): класс выбирается по числу голосов. Альтернатива - soft voting: усредняются предсказанные вероятности классов, затем берётся argmax.

Soft voting обычно точнее, если базовые модели выдают калиброванные вероятности. Hard voting устойчивее к плохо откалиброванным моделям. Смещение ансамбля при этом остаётся примерно равным смещению одной модели - бэггинг почти не трогает смещение, он работает именно с дисперсией.

Разложение ошибки: смещение и дисперсия

Чтобы понять, почему бэггинг лечит именно дисперсию, полезно вспомнить классическое разложение ожидаемой ошибки модели. Для квадратичной функции потерь средняя ошибка предсказания раскладывается на три части:

E[(yf^(x))2]=(Ef^f)2смещение2+Var(f^)дисперсия+σε2шум.\mathbb{E}\big[(y - \hat{f}(x))^2\big] = \underbrace{(\,\mathbb{E}\hat{f} - f\,)^2}_{\text{смещение}^2} + \underbrace{\operatorname{Var}(\hat{f})}_{\text{дисперсия}} + \underbrace{\sigma_\varepsilon^2}_{\text{шум}}.

Шум σε2\sigma_\varepsilon^2 - неустранимая случайность данных, её не убрать никаким методом. Смещение показывает, насколько систематически модель промахивается, а дисперсия - насколько её предсказания «гуляют» от выборки к выборке. Бэггинг усредняет много моделей с одинаковым смещением, поэтому смещение ансамбля почти не меняется, зато усреднение прямо бьёт по дисперсии. Вот почему метод бесполезен для моделей с высоким смещением и низкой дисперсией: уменьшать там просто нечего.

Простой пример на числах

Пусть мы предсказываем цену квартиры и обучили 5 глубоких деревьев на бутстрэп-выборках. На одном тестовом объекте они дали оценки (в млн руб.): 8,1; 7,4; 9,0; 8,6; 7,9. Каждое дерево по отдельности заметно ошибается в обе стороны - это и есть высокая дисперсия. Усреднение даёт:

y^=8,1+7,4+9,0+8,6+7,95=8,2 млн руб.\hat{y} = \frac{8{,}1 + 7{,}4 + 9{,}0 + 8{,}6 + 7{,}9}{5} = 8{,}2 \text{ млн руб.}

Разброс отдельных оценок здесь около ±0,8 млн, а усреднённый прогноз гораздо ближе к истинному значению и устойчивее: добавь новый объект в обучение - отдельные деревья дёрнутся, а среднее почти не сдвинется. Для классификации логика та же, только вместо среднего считают голоса: если три дерева из пяти отнесли объект к классу «дорогая», ансамбль выдаёт «дорогая», игнорируя два ошибочных голоса.

Бэггинг и случайный лес

Самое известное применение бэггинга - случайный лес. Это бэггинг над деревьями решений с одним важным дополнением: при каждом разбиении узла дерево выбирает лучший признак не из всех, а из случайного подмножества признаков (обычно p\sqrt{p} для классификации, где pp - общее число признаков).

Зачем это нужно, ясно из формулы дисперсии. Если в данных есть один очень сильный признак, все деревья будут строиться похоже и сильно коррелировать - ρ\rho останется высоким. Случайный выбор признаков заставляет деревья «смотреть» на данные под разными углами, понижает ρ\rho и усиливает эффект усреднения. Так случайный лес выжимает из бэггинга больше, чем простой бэггинг деревьев.

Когда бэггинг помогает, а когда нет

Бэггинг даёт выигрыш, когда базовый алгоритм неустойчив - то есть имеет высокую дисперсию. Лучшие кандидаты:

  • Глубокие деревья решений - классика, дисперсия огромна, бэггинг её гасит.
  • Метод k ближайших соседей при малых kk, нейросети без регуляризации - тоже неустойчивы.

Бэггинг почти бесполезен для устойчивых алгоритмов: линейной регрессии, наивного Байеса, k-NN при больших kk. У них дисперсия и так мала, усреднять нечего, а смещение бэггинг не уменьшает. Поэтому связка «бэггинг + деревья» так популярна: дерево даёт низкое смещение и высокую дисперсию - ровно то, что метод умеет лечить.

Частые ошибки

  • Бэггинг ансамблем линейных моделей. Усреднение устойчивых моделей почти не снижает дисперсию: выигрыша нет, считаем впустую. Бэггинг нужен неустойчивым алгоритмам.
  • Путать бэггинг с бустингом. Бэггинг - параллельное независимое обучение, борьба с дисперсией. Бустинг - последовательное, борьба со смещением. Это разные механики и разные эффекты.
  • Слишком мелкие деревья в ансамбле. Если базовые деревья сильно урезать по глубине, у них растёт смещение, которое бэггинг не уменьшает. Базовые модели должны быть переобученными, а не недообученными.
  • Игнорировать корреляцию моделей. Без снижения ρ\rho (например, без случайных признаков) выигрыш быстро упирается в пол ρσ2\rho\,\sigma^2. Добавлять деревья бесконечно бессмысленно.
  • Бутстрэп без возвращения. Выборка без возвращения даёт почти одинаковые наборы и сильно коррелированные модели - эффект бэггинга теряется.

FAQ

Сколько моделей нужно в ансамбле? Дисперсия убывает как 1ρBσ2\frac{1-\rho}{B}\sigma^2, поэтому отдача от каждого нового дерева быстро падает. На практике берут от 100 до 500 деревьев: дальше прирост качества почти незаметен, а время растёт линейно. Точное число подбирают по OOB-ошибке - она выходит на плато.

Чем бэггинг отличается от случайного леса? Случайный лес - это бэггинг над деревьями плюс случайный выбор признаков в каждом узле. Дополнительная случайность снижает корреляцию деревьев ρ\rho и усиливает падение дисперсии. Чистый бэггинг деревьев такого выбора признаков не делает.

Можно ли распараллелить бэггинг? Да, и это его большое преимущество. Базовые модели обучаются независимо, поэтому их легко раскидать по ядрам процессора или машинам кластера. Бустинг так распараллелить нельзя - там каждая модель ждёт предыдущую.

Коротко

Бэггинг (bootstrap aggregating) - параллельный ансамблевый метод: обучаем много неустойчивых моделей на бутстрэп-выборках и усредняем (регрессия) или голосуем (классификация). Главный эффект - снижение дисперсии: она равна ρσ2+1ρBσ2\rho\,\sigma^2 + \frac{1-\rho}{B}\sigma^2, где второе слагаемое падает с числом моделей BB, а первое ограничено корреляцией ρ\rho. Смещение бэггинг почти не меняет, поэтому метод работает с неустойчивыми алгоритмами (глубокие деревья) и бесполезен для устойчивых (линейная регрессия). Знаменитое развитие идеи - случайный лес, где случайный выбор признаков дополнительно снижает ρ\rho.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также