1. Введение в ансамблевые методы и концепцию Бэггинга
Введение в ансамблевые методы и концепцию Бэггинга
Добро пожаловать на курс по Бэггингу! Мы начинаем наше путешествие в мир продвинутого машинного обучения. Если вы когда-либо сталкивались с ситуацией, когда одна модель работает недостаточно хорошо, или её результаты слишком нестабильны, то эта статья для вас. Сегодня мы разберем фундамент, на котором строятся мощные алгоритмы, такие как Случайный лес (Random Forest).
Мудрость толпы: Зачем нам ансамбли?
Представьте, что вы участвуете в викторине «Кто хочет стать миллионером?». Вы дошли до сложного вопроса и не знаете ответа. У вас есть две подсказки: «Звонок другу» (эксперту в одной узкой области) или «Помощь зала» (мнение сотен обычных людей). Кого вы выберете?
Статистика показывает, что «Помощь зала» часто оказывается точнее. Почему? Потому что ошибки отдельных людей случайны и независимы: кто-то ошибся в одну сторону, кто-то в другую, но в среднем толпа указывает на правильный ответ. Этот феномен называется мудростью толпы.
В машинном обучении этот принцип реализуется через ансамблевые методы (Ensemble Methods). Вместо того чтобы полагаться на одну сложную модель, мы обучаем множество простых моделей и объединяем их предсказания.
Основные виды ансамблирования
Существует три основных подхода к созданию ансамблей:
Сегодня мы сфокусируемся на первом и, пожалуй, самом надежном методе для уменьшения разброса предсказаний — Бэггинге.
Проблема смещения и разброса (Bias-Variance Tradeoff)
Чтобы понять, зачем нужен бэггинг, нам нужно погрузиться в одну из фундаментальных проблем машинного обучения — компромисс между смещением и разбросом.
Любая ошибка модели () складывается из трех компонентов:
Где: * — полная ошибка модели на тестовых данных. * (Смещение) — ошибка, возникающая из-за упрощения модели. Высокое смещение означает, что модель слишком проста и не может уловить закономерности данных (недообучение). * (Разброс) — ошибка, возникающая из-за чрезмерной чувствительности к малым колебаниям в обучающей выборке. Высокий разброс означает, что если мы немного изменим данные для обучения, результат модели сильно изменится (переобучение). * (Неустранимая ошибка) — шум в самих данных, который нельзя предсказать.
!Графическое представление компромисса между смещением и разбросом
Сложные модели (например, глубокие решающие деревья) имеют низкое смещение, но высокий разброс. Они идеально запоминают обучающую выборку, но плохо работают на новых данных. Простые модели (например, линейная регрессия) имеют низкий разброс, но высокое смещение.
Главная цель Бэггинга — уменьшить разброс (Variance) без существенного увеличения смещения.
Что такое Бэггинг?
Термин Bagging — это искусственно созданное слово, образованное от Bootstrap aggregating (Бутстрэп-агрегирование). Как следует из названия, метод состоит из двух ключевых этапов:
Давайте разберем каждый этап подробно.
Этап 1: Bootstrap (Выборка с возвращением)
Представьте, что у вас есть мешок с 1000 пронумерованных шаров (наша обучающая выборка). Чтобы обучить одну модель, мы достаем из мешка шар, записываем его номер и... возвращаем обратно в мешок. Затем перемешиваем и достаем следующий. Мы повторяем это 1000 раз.
В итоге у нас получается новая выборка того же размера, что и исходная, но: * Некоторые шары попали в неё несколько раз (дубликаты). * Некоторые шары не попали вовсе.
Это и есть выборка с возвращением.
#### Математика бутстрэпа
Какова вероятность того, что конкретный пример не попадет в бутстрэп-выборку размера ?
Вероятность вытащить любой другой пример, кроме , в одной попытке равна:
Где: * — вероятность не выбрать конкретный объект . * — размер выборки (количество объектов).
Поскольку мы делаем независимых попыток, вероятность того, что объект не будет выбран ни разу за все попыток, равна:
Где: * — вероятность того, что объект ни разу не попадет в новую выборку. * — количество попыток (равное размеру выборки).
Если устремить к бесконечности (для больших выборок), мы получаем замечательный математический предел:
Где: * — число Эйлера (основание натурального логарифма, ). * — приблизительное значение предела.
Вывод: В каждую бутстрэп-выборку попадает примерно 63.2% уникальных примеров из исходных данных. Оставшиеся 36.8% примеров называются Out-Of-Bag (OOB) — они не используются для обучения конкретной модели и могут служить отличным материалом для валидации (тестирования).
!Визуализация создания бутстрэп-выборок с демонстрацией дубликатов и неиспользованных примеров
Этап 2: Aggregating (Агрегирование ответов)
После того как мы создали, скажем, 100 бутстрэп-выборок, мы обучаем на каждой из них свой алгоритм (базовую модель). Обычно это решающие деревья, так как они чувствительны к данным и имеют высокий разброс (что нам и нужно исправить).
Теперь у нас есть 100 моделей. Как получить один ответ?
#### Для задач регрессии (предсказание числа)
Мы используем простое усреднение. Если у нас есть моделей, и каждая выдает предсказание , то итоговый ответ будет:
Где: * — итоговое агрегированное предсказание ансамбля. * — количество моделей в ансамбле. * — предсказание -й модели для входных данных . * — знак суммирования по всем моделям от 1 до .
Усреднение работает, потому что ошибки случайных моделей часто имеют разный знак и при сложении гасят друг друга.
#### Для задач классификации (предсказание класса)
Используется голосование (Voting). Оно бывает двух типов:
Почему Бэггинг работает?
Вернемся к статистике. Если у нас есть одна случайная величина с дисперсией , то дисперсия среднего значения , полученного из независимых таких же величин, будет:
Где: * — дисперсия (разброс) усредненного значения. * — дисперсия одной отдельной модели. * — количество моделей.
Хотя на практике модели в бэггинге не являются полностью независимыми (так как обучаются на пересекающихся данных), этот принцип сохраняется: усреднение множества зашумленных моделей снижает общий шум (разброс).
Преимущества и недостатки Бэггинга
Чтобы вы могли осознанно применять этот инструмент, давайте взвесим все «за» и «против».
Преимущества (+)
* Снижение переобучения: Главный козырь. Превращает нестабильные модели в устойчивые. * Точность: Обычно выше, чем у одиночной модели. * Параллелизуемость: Каждая модель обучается независимо. Если у вас 10 ядер процессора, вы можете обучать 10 моделей одновременно. Это огромное преимущество перед Бустингом, который обучается последовательно. * OOB-оценка: Можно оценить качество модели без отложенной тестовой выборки, используя те самые 36.8% данных.Недостатки (-)
* Потеря интерпретируемости: Одно дерево решений легко понять (если , то иди направо). Лес из 1000 деревьев — это «черный ящик». * Ресурсоемкость: Нужно хранить в памяти и обучать множество моделей. Предсказание также занимает больше времени. * Не исправляет смещение: Если базовая модель очень плохая (слишком простая), бэггинг ей не поможет. Бэггинг работает лучше всего на сильных, но нестабильных моделях.Заключение
Бэггинг — это мощная техника, которая превращает «толпу» слабых или нестабильных алгоритмов в один надежный инструмент. Мы узнали, что в основе лежит статистический метод бутстрэпа и последующее агрегирование результатов. Это позволяет эффективно бороться с переобучением, снижая разброс модели.
В следующей статье мы перейдем от теории к практике и рассмотрим самый известный алгоритм, основанный на бэггинге — Случайный лес (Random Forest), а также разберем, чем он отличается от простого бэггинга над деревьями.