Бутстреп-методы в оценке качества моделей

Материал из MachineLearning.

Версия от 20:48, 18 июля 2026; Mariia Shubina (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM Qwen3.7-Plus и проверена участником Mariia Shubina 23:17, 18 июля 2026 (MSD)


Содержание

Введение

Бутстреп-методы (англ. Bootstrap methods) — класс статистических методов ресемплинга (повторной выборки), предложенный Брэдли Эфроном в 1979 году[1]. В контексте машинного обучения бутстреп используется преимущественно для оценки неопределённости и надёжности метрик качества модели (построения доверительных интервалов для accuracy, AUC-ROC, MSE), особенно когда размер доступного набора данных ограничен. В отличие от кросс-валидации, которая фокусируется на выборе модели и гиперпараметров, бутстреп позволяет количественно оценить статистическую значимость различий между моделями и надёжность полученных оценок качества.

Основная идея и алгоритм

Пусть имеется набор данных D размера N. После обучения модели получена точечная оценка качества (например, accuracy = 0.85). Бутстреп позволяет оценить разброс этой оценки, имитируя процесс многократного сбора новых данных из той же генеральной совокупности.

Алгоритм бутстрепа

Из исходной выборки D размера N случайным образом с возвращением (with replacement) извлекается N объектов, формируя одну бутстреп-выборку D_b. Некоторые объекты попадают в D_b несколько раз, некоторые не попадают вовсе. На D_b обучается (или оценивается) модель, вычисляется интересующая метрика M_b. Шаги 1–3 повторяются B раз (обычно B = 1000 или 2000). По полученным B значениям метрики строится эмпирическое распределение, из которого вычисляются среднее, стандартное отклонение и доверительные интервалы (например, 2.5-й и 97.5-й перцентили).

Вероятность попадания объектов

Вероятность того, что конкретный объект исходной выборки не попадёт в бутстреп-выборку размера N, равна:

\lim_{N \to \infty} (1 - 1/N)^N = 1/e \approx 0.368

Следовательно, в среднем каждая бутстреп-выборка содержит около 63.2% уникальных объектов исходного набора данных. Оставшиеся 36.8% объектов называются Out-of-Bag (OOB, вневыборочными) и могут использоваться для валидации.

Варианты бутстрепа для оценки ошибок

Прямое вычисление ошибки на той же выборке, на которой модель обучалась (D_b), даёт оптимистически смещённую оценку (переобучение). Для получения несмещённой оценки используют модификации.

Out-of-Bag (OOB) бутстреп

Объекты, не попавшие в D_b (примерно 36.8%), образуют OOB-выборку. Модель обучается на D_b. Ошибка вычисляется только на OOB-объектах. Недостаток: оценка часто оказывается пессимистически смещённой, так как модель обучается на меньшем объёме данных (\approx 0.632N), чем доступно в реальности.

Метод .632 (0.632 Bootstrap)

Предложен Эфроном и Тибширани[1] для компенсации смещений. Метод комбинирует оптимистичную ошибку на обучающей выборке (err) и пессимистичную OOB-ошибку (err_{OOB}):

Err_{.632} = 0.368 \times err + 0.632 \times err_{OOB}

где err — средняя ошибка на обучающих выборках, err_{OOB} — средняя ошибка на OOB-выборках. Этот метод даёт отличную оценку для большинства задач, но может давать оптимистичное смещение, если модель сильно переобучается (например, глубокое дерево решений на зашумленных данных).

Метод .632+ (0.632+ Bootstrap)

Улучшенная версия (Efron & Tibshirani, 1997)[1], которая адаптируется к степени переобучения. Метод вычисляет «коэффициент переобучения» R и динамически меняет веса в формуле:

Err_{.632+} = (1 - w) \times err + w \times err_{OOB}

где вес w зависит от степени переобучения, приближаясь к OOB-оценке при сильном переобучении и к .632 при его отсутствии. Это золотой стандарт бутстреп-оценки ошибки.

Сравнение с кросс-валидацией

Бутстреп и кросс-валидация (Cross-Validation, CV) решают смежные, но различные задачи.

Основные различия

Цель применения: K-Fold CV используется преимущественно для выбора модели и гиперпараметров (Model Selection), тогда как бутстреп — для оценки неопределённости метрики и построения доверительных интервалов (Confidence Intervals). Смещение (Bias): CV имеет меньшее смещение, так как модель обучается на (K-1)/K данных (что близко к N). Бутстреп OOB имеет большее смещение, но оно корректируется в методе .632+. Дисперсия оценки: Бутстреп обеспечивает более низкую дисперсию оценки метрики, давая более стабильные результаты, особенно при малом N. CV может иметь высокую дисперсию из-за случайного разбиения на фолды. Вычислительная стоимость: CV требует K обучений модели (обычно K = 5 или 10). Бутстреп требует B обучений (обычно B = 1000 или 2000), что значительно дороже.

Рекомендации по применению

Используйте K-Fold CV для выбора лучшей модели и настройки гиперпараметров. После выбора финальной модели применяйте бутстреп, чтобы оценить: «Точность нашей модели составляет 85% с 95% доверительным интервалом [82%, 88%]».

Применения в машинном обучении

Построение доверительных интервалов

Бутстреп позволяет перейти от точечных оценок к интервальным. Вместо утверждения «AUC = 0.90» можно сказать «AUC = 0.90 ± 0.02 (95% CI)», что критически важно в медицине, финтехе и A/B-тестах для оценки статистической значимости результатов.

Сравнение моделей

Для сравнения двух моделей строится распределение разницы их метрик (Model_A - Model_B) по бутстреп-итерациям. Если доверительный интервал этой разницы не включает ноль, улучшение статистически значимо.

Random Forest

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

Оценка важности признаков

Бутстреп позволяет построить доверительные интервалы для весов признаков или важности (feature importance), чтобы отсечь шумовые переменные. Признаки, у которых интервал важности включает ноль, могут быть исключены из модели.

Ограничения и типичные ошибки

Нарушение предположения i.i.d.

Бутстреп предполагает, что данные независимы и одинаково распределены (i.i.d.). Для временных рядов обычный бутстреп разрушит автокорреляцию. В таких случаях необходимо использовать Block Bootstrap (блочный бутстреп), который извлекает блоки последовательных наблюдений.

Вычислительная сложность

Обучение сложной модели (например, градиентного бустинга или нейронной сети) 1000 раз может быть неприемлемо долгим. В таких случаях можно уменьшить B до 200–500 или использовать параллельные вычисления.

Утечка данных (Data Leakage)

Если делать бутстреп после предобработки (например, после масштабирования или отбора признаков на всём датасете), оценка будет оптимистически смещённой. Бутстреп должен применяться к «сырым» данным, а весь пайплайн (preprocessing + model) должен обучаться внутри каждого цикла заново.

Дисбаланс классов

При малом размере выборки и сильном дисбалансе в некоторых бутстреп-итерациях может вообще не оказаться объектов миноритарного класса. Решение: Stratified Bootstrap (стратифицированный бутстреп с сохранением пропорций классов), аналогичный стратификации в кросс-валидации.

Малый размер выборки

При очень малом N (< 20) бутстреп может быть ненадёжным. В таких случаях предпочтительнее использовать точные статистические тесты или байесовские методы.

Пример реализации

Пример оценки доверительного интервала для accuracy с использованием бутстрепа на Python:

# Инициализировать параметры
n_iterations = 1000
scores = []
 
Для каждой итерации i от 1 до n_iterations:
for i in range(n_iterations):
X_boot, y_boot = resample(X, y, replace=True)
model.fit(X_boot, y_boot)
y_pred = model.predict(X_boot)
scores.append(accuracy_score(y_boot, y_pred))
Вычислить среднее и стандартное отклонение
mean_score = np.mean(scores)
std_score = np.std(scores)
Построить 95% ДИ через перцентили
lower = np.percentile(scores, 2.5)
upper = np.percentile(scores, 97.5)

Для корректной оценки рекомендуется использовать OOB-объекты или метод .632+, а не оценку на обучающей выборке.

Литература

Efron B. Bootstrap Methods: Another Look at the Jackknife // The Annals of Statistics: Журнал. — 1979. — Т. 7. — № 1. — С. 1—26. Efron B., Tibshirani R. J. An Introduction to the Bootstrap. — New York: Chapman & Hall/CRC, 1993. Efron B., Tibshirani R. J. Improvements on Cross-Validation: The .632+ Bootstrap Method // Journal of the American Statistical Association: Журнал. — 1997. — Т. 92. — № 438. — С. 548—560. Davison A. C., Hinkley D. V. Bootstrap Methods and Their Application. — Cambridge: Cambridge University Press, 1997. Varma S., Simon R. Bias in Error Estimation When Using Cross-Validation for Model Selection // BMC Bioinformatics: Журнал. — 2006. — Т. 7. — № 1. — С. 91.

Личные инструменты