Бутстреп-методы в оценке качества моделей
Материал из MachineLearning.
| | Статья написана с использованием LLM Qwen3.7-Plus и проверена участником Mariia Shubina 23:17, 18 июля 2026 (MSD) |
|
Введение
Бутстреп-методы (англ. Bootstrap methods) — класс статистических методов ресемплинга (повторной выборки), предложенный Брэдли Эфроном в 1979 году[1]. В контексте машинного обучения бутстреп используется преимущественно для оценки неопределённости и надёжности метрик качества модели (построения доверительных интервалов для accuracy, AUC-ROC, MSE), особенно когда размер доступного набора данных ограничен. В отличие от кросс-валидации, которая фокусируется на выборе модели и гиперпараметров, бутстреп позволяет количественно оценить статистическую значимость различий между моделями и надёжность полученных оценок качества.
Основная идея и алгоритм
Пусть имеется набор данных размера
. После обучения модели получена точечная оценка качества (например, accuracy = 0.85). Бутстреп позволяет оценить разброс этой оценки, имитируя процесс многократного сбора новых данных из той же генеральной совокупности.
Алгоритм бутстрепа
Из исходной выборки размера
случайным образом с возвращением (with replacement) извлекается
объектов, формируя одну бутстреп-выборку
.
Некоторые объекты попадают в
несколько раз, некоторые не попадают вовсе.
На
обучается (или оценивается) модель, вычисляется интересующая метрика
.
Шаги 1–3 повторяются
раз (обычно
или
).
По полученным
значениям метрики строится эмпирическое распределение, из которого вычисляются среднее, стандартное отклонение и доверительные интервалы (например, 2.5-й и 97.5-й перцентили).
Вероятность попадания объектов
Вероятность того, что конкретный объект исходной выборки не попадёт в бутстреп-выборку размера , равна:
Следовательно, в среднем каждая бутстреп-выборка содержит около 63.2% уникальных объектов исходного набора данных. Оставшиеся 36.8% объектов называются Out-of-Bag (OOB, вневыборочными) и могут использоваться для валидации.
Варианты бутстрепа для оценки ошибок
Прямое вычисление ошибки на той же выборке, на которой модель обучалась (), даёт оптимистически смещённую оценку (переобучение). Для получения несмещённой оценки используют модификации.
Out-of-Bag (OOB) бутстреп
Объекты, не попавшие в (примерно 36.8%), образуют OOB-выборку.
Модель обучается на
.
Ошибка вычисляется только на OOB-объектах.
Недостаток: оценка часто оказывается пессимистически смещённой, так как модель обучается на меньшем объёме данных (
), чем доступно в реальности.
Метод .632 (0.632 Bootstrap)
Предложен Эфроном и Тибширани[1] для компенсации смещений. Метод комбинирует оптимистичную ошибку на обучающей выборке () и пессимистичную OOB-ошибку (
):
Этот метод даёт отличную оценку для большинства задач, но может давать оптимистичное смещение, если модель сильно переобучается (например, глубокое дерево решений на зашумленных данных).
Метод .632+ (0.632+ Bootstrap)
Улучшенная версия (Efron & Tibshirani, 1997)[1], которая адаптируется к степени переобучения. Метод вычисляет «коэффициент переобучения» и динамически меняет веса в формуле:
где вес зависит от степени переобучения, приближаясь к OOB-оценке при сильном переобучении и к .632 при его отсутствии. Это золотой стандарт бутстреп-оценки ошибки.
Сравнение с кросс-валидацией
Бутстреп и кросс-валидация (Cross-Validation, CV) решают смежные, но различные задачи.
Основные различия
Цель применения: K-Fold CV используется преимущественно для выбора модели и гиперпараметров (Model Selection), тогда как бутстреп — для оценки неопределённости метрики и построения доверительных интервалов (Confidence Intervals).
Смещение (Bias): CV имеет меньшее смещение, так как модель обучается на данных (что близко к
). Бутстреп OOB имеет большее смещение, но оно корректируется в методе .632+.
Дисперсия оценки: Бутстреп обеспечивает более низкую дисперсию оценки метрики, давая более стабильные результаты, особенно при малом
. CV может иметь высокую дисперсию из-за случайного разбиения на фолды.
Вычислительная стоимость: CV требует
обучений модели (обычно
или
). Бутстреп требует
обучений (обычно
или
), что значительно дороже.
Рекомендации по применению
Используйте K-Fold CV для выбора лучшей модели и настройки гиперпараметров. После выбора финальной модели применяйте бутстреп, чтобы оценить: «Точность нашей модели составляет 85% с 95% доверительным интервалом [82%, 88%]».
Применения в машинном обучении
Построение доверительных интервалов
Бутстреп позволяет перейти от точечных оценок к интервальным. Вместо утверждения «AUC = 0.90» можно сказать «AUC = 0.90 ± 0.02 (95% CI)», что критически важно в медицине, финтехе и A/B-тестах для оценки статистической значимости результатов.
Сравнение моделей
Для сравнения двух моделей строится распределение разницы их метрик () по бутстреп-итерациям. Если доверительный интервал этой разницы не включает ноль, улучшение статистически значимо.
Random Forest
Алгоритм случайного леса использует OOB-ошибку «бесплатно» в процессе обучения для оценки качества без необходимости выделять отдельный валидационный набор. Каждый дерево обучается на своей бутстреп-выборке, а OOB-объекты служат для внутренней валидации.
Оценка важности признаков
Бутстреп позволяет построить доверительные интервалы для весов признаков или важности (feature importance), чтобы отсечь шумовые переменные. Признаки, у которых интервал важности включает ноль, могут быть исключены из модели.
Ограничения и типичные ошибки
Нарушение предположения i.i.d.
Бутстреп предполагает, что данные независимы и одинаково распределены (i.i.d.). Для временных рядов обычный бутстреп разрушит автокорреляцию. В таких случаях необходимо использовать Block Bootstrap (блочный бутстреп), который извлекает блоки последовательных наблюдений.
Вычислительная сложность
Обучение сложной модели (например, градиентного бустинга или нейронной сети) 1000 раз может быть неприемлемо долгим. В таких случаях можно уменьшить до 200–500 или использовать параллельные вычисления.
Утечка данных (Data Leakage)
Если делать бутстреп после предобработки (например, после масштабирования или отбора признаков на всём датасете), оценка будет оптимистически смещённой. Бутстреп должен применяться к «сырым» данным, а весь пайплайн (preprocessing + model) должен обучаться внутри каждого цикла заново.
Дисбаланс классов
При малом размере выборки и сильном дисбалансе в некоторых бутстреп-итерациях может вообще не оказаться объектов миноритарного класса. Решение: Stratified Bootstrap (стратифицированный бутстреп с сохранением пропорций классов), аналогичный стратификации в кросс-валидации.
Малый размер выборки
При очень малом (< 20) бутстреп может быть ненадёжным. В таких случаях предпочтительнее использовать точные статистические тесты или байесовские методы.
Пример реализации
Пример оценки доверительного интервала для accuracy с использованием бутстрепа на Python: Инициализировать параметры: n_iterations = 1000 Для каждой итерации i от 1 до n_iterations: X_boot, y_boot = resample(X, y, replace=True) model.fit(X_boot, y_boot) y_pred = model.predict(X_boot) scores[i] = accuracy_score(y_boot, y_pred) Вычислить среднее scores.mean() и стандартное отклонение scores.std() Построить 95% ДИ через перцентили: [2.5%, 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.

