1. Введение в ансамблевые методы и математические основы бутстрэпа
Введение в ансамблевые методы и математические основы бутстрэпа
Добро пожаловать в курс «Основы Бэггинга в машинном обучении». Это первая статья, в которой мы заложим фундамент для понимания одного из самых мощных и популярных подходов в Data Science — бэггинга. Прежде чем мы перейдем к алгоритмам вроде Random Forest, нам необходимо разобраться, что такое ансамбли, зачем они нужны и какая математическая магия стоит за странным словом «бутстрэп».
Мудрость толпы: зачем нам ансамбли?
Представьте, что вы участвуете в викторине «Кто хочет стать миллионером?». Вы дошли до сложного вопроса и не знаете ответа. У вас есть две подсказки: «Звонок другу» (пусть это будет очень умный профессор) или «Помощь зала».
Интуитивно кажется, что профессор знает больше, чем случайный зритель в студии. Однако статистика утверждает обратное: усредненное мнение большой группы людей (зала) часто оказывается точнее, чем мнение одного, даже очень квалифицированного эксперта. Этот феномен известен как «Мудрость толпы».
В машинном обучении этот принцип реализуется через ансамблевые методы (Ensemble Methods).
> Ансамбль — это метод машинного обучения, который объединяет прогнозы нескольких базовых моделей (алгоритмов) для получения одного итогового прогноза, обладающего лучшим качеством, чем каждая из моделей по отдельности.
!Сравнение работы одиночной модели и ансамбля моделей
Основные семейства ансамблей
В мире машинного обучения существует три главных подхода к созданию ансамблей:
Чтобы понять, почему бэггинг работает, нам нужно погрузиться в одну из фундаментальных проблем машинного обучения — дилемму смещения и разброса.
Дилемма смещения и разброса (Bias-Variance Tradeoff)
Любая ошибка модели машинного обучения складывается из трех компонентов. Математически это можно записать следующим образом:
Где: * — полная ошибка модели на тестовом примере . * (Смещение) — ошибка, возникающая из-за ошибочных предположений в алгоритме обучения. Высокое смещение приводит к недообучению (модель слишком простая и упускает важные закономерности). * (Разброс) — ошибка, возникающая из-за чрезмерной чувствительности к малым колебаниям в обучающем наборе. Высокий разброс приводит к переобучению (модель запоминает шум вместо сигнала). * (Неустранимая ошибка) — шум в самих данных, который невозможно убрать никаким алгоритмом.
!Графическая иллюстрация компромисса между смещением и разбросом
Главная цель бэггинга — снижение разброса (Variance) без существенного увеличения смещения.
Если у нас есть множество моделей, которые переобучаются (имеют высокий разброс), но ошибаются по-разному, то их усреднение позволит сгладить эти ошибки. Именно для создания таких «разных» моделей на одних и тех же данных используется метод бутстрэпа.
Бутстрэп (Bootstrap): математическое сердце метода
Слово «Bootstrap» происходит от выражения "to pull oneself up by one's bootstraps" (вытянуть себя за шнурки ботинок), что означает сделать что-то невозможное собственными силами. В статистике это метод генерации выборок.
Представьте, что у нас есть исходный набор данных размером . Чтобы обучить много разных моделей, нам нужно много разных наборов данных. Но где их взять, если у нас есть только один ?
Мы создаем новые выборки того же размера , выбирая объекты из исходного набора случайным образом с возвращением.
Как работает выборка с возвращением?
В результате в новой выборке (бутстрэп-выборке) некоторые объекты могут встретиться два, три и более раз, а некоторые — не встретиться вовсе.
Вероятность попадания объекта в выборку
Давайте посчитаем, какая часть исходных данных в среднем попадает в одну бутстрэп-выборку. Это критически важно для понимания эффективности метода.
Пусть размер выборки равен . Вероятность вытащить конкретный объект в одной попытке равна:
Где: * — вероятность выбрать конкретный объект. * — общее количество объектов.
Соответственно, вероятность не вытащить этот объект в одной попытке:
Где: * — вероятность того, что конкретный объект не будет выбран.
Поскольку мы делаем независимых попыток, чтобы сформировать новую выборку, вероятность того, что объект ни разу не попадет в бутстрэп-выборку, равна произведению вероятностей для каждой попытки:
Где: * — вероятность того, что объект вообще не попадет в новую выборку после попыток.
Предел при больших данных
Что происходит, когда данных много (то есть стремится к бесконечности)? Мы можем использовать второй замечательный предел:
Где: * — число Эйлера, математическая константа, приблизительно равная .
Давайте вычислим значение:
Вывод: Вероятность того, что конкретный объект не попадет в бутстрэп-выборку, составляет примерно 36.8%.
Следовательно, вероятность того, что объект попадет в выборку хотя бы один раз:
Где: * — доля уникальных объектов из исходного датасета, которые попадают в бутстрэп-выборку.
Это знаменитое правило 63.2%. В среднем каждая бутстрэп-выборка содержит лишь около 63% уникальных примеров из исходного набора данных. Остальные 37% примеров называются Out-of-Bag (OOB) выборкой.
> Важно: OOB-примеры играют огромную роль. Поскольку модель не видела эти данные при обучении, их можно использовать для валидации (проверки качества) модели без необходимости выделять отдельную отложенную выборку.
!Визуализация создания бутстрэп-выборок с повторениями
От Бутстрэпа к Бэггингу
Теперь, когда мы понимаем математику бутстрэпа, концепция Бэггинга становится простой. Само название Bagging — это сокращение от Bootstrap Aggregating.
Алгоритм выглядит так:
Методы агрегации
Как именно объединить ответы моделей? Это зависит от типа задачи.
#### 1. Для задач регрессии (предсказание числа) Используется простое усреднение:
Где: * — итоговое предсказание ансамбля. * — количество моделей. * — предсказание -й модели для объекта .
#### 2. Для задач классификации (предсказание класса) Используется голосование (Voting).
* Жесткое голосование (Hard Voting): Каждая модель голосует за класс. Побеждает класс, набравший большинство голосов (мода). * Мягкое голосование (Soft Voting): Модели выдают вероятности принадлежности к классам. Эти вероятности усредняются, и выбирается класс с наибольшей средней вероятностью. Мягкое голосование часто дает более точные результаты, так как учитывает «уверенность» моделей.
Почему это работает?
Возвращаясь к формуле ошибки: бэггинг работает, потому что усреднение снижает разброс (Variance). Если ошибки базовых моделей некоррелированы (то есть они ошибаются в разных местах), то при усреднении случайные ошибки взаимно компенсируются, а полезный сигнал усиливается.
Именно поэтому для бэггинга идеально подходят нестабильные алгоритмы, такие как глубокие решающие деревья. Если чуть-чуть изменить данные, дерево построится совершенно иначе. Бутстрэп обеспечивает это «чуть-чуть изменение» данных, а агрегация сглаживает нестабильность.
Заключение
Мы разобрали фундамент ансамблевых методов. Вы узнали, что: * Ансамбли используют «мудрость толпы» для улучшения прогнозов. * Бэггинг борется с высоким разбросом (Variance) моделей. * Бутстрэп — это метод генерации выборок с возвращением, где каждая выборка содержит около 63.2% уникальных данных. * Оставшиеся 36.8% данных (OOB) можно использовать для бесплатной валидации.
В следующей статье мы перейдем от теории к практике и разберем самый известный алгоритм, основанный на бэггинге — Случайный лес (Random Forest).