Что такое модельные ансамбли? Из названия можно догадаться, что ансамбль — это просто несколько алгоритмов машинного обучения, собранных в единое целое.
Этот подход часто используется для усиления «положительных качеств» отдельных алгоритмов, которые сами по себе могут работать плохо, но в группе – ансамбле – дают хорошие результаты.
При использовании ансамблевых методов алгоритмы обучаются одновременно и могут исправлять ошибки друг друга.
Типичными примерами методов, направленных на объединение «слабых» учащихся в группу сильных, являются (рис.
1):
- Стейкинг .
Можно рассматривать гетерогенные отдельные модели.
Существует метамодель, в которой в качестве входных данных используются базовые модели, а на выходе получается окончательный прогноз.
- Упаковка.
Ярким представителем этого метода является случайный лес.
- Повышение.
Конечно, в качестве примера здесь сразу приходит на ум повышение градиента.
Изображение 1 Эти три метода будут рассмотрены более подробно ниже.
Стейкинг
Из трех вариантов стейкинг является наименее популярным.Это также можно увидеть по количеству готовых реализаций этого метода в программных библиотеках.
В том же sklearn.ensemble в питоне AdaBoost, Bagged, GradientBoosting используются гораздо чаще, чем тот же Stacking (хотя его реализация тоже есть).
Стейкинг отличается двумя основными особенностями: он может сочетать в качестве базовых алгоритмы разной природы.
Например, возьмите в качестве основы машину опорных векторов (SVM), k-ближайших соседей (KNN) и обучите логистическую регрессию для классификации на основе их результатов.
Также стоит отметить непредсказуемость метамодели.
Если в случае с бэггингом и бустингом существует достаточно четкий и конкретный алгоритм ансамбля (мы увидим позже), то здесь метамодель со временем может обучаться по-разному на основе входных данных.
Алгоритм обучения выглядит следующим образом (рис.
2):
- Разделите образец на k складывается (то же значение, что и перекрестная проверка).
- Для объекта из выделения, расположенного в k-я складка прогноз делается с помощью слабых алгоритмов, обученных на k-1 складывается.
- Для каждого образца объекта создается набор прогнозов слабого алгоритма.
- Метамодель в конечном итоге обучается на прогнозах, генерируемых алгоритмами низкого уровня.
фигура 2
Упаковка
Бэггинг уже является более популярным подходом, и часто при упоминании этого термина вспоминают алгоритм построения случайного леса как его наиболее типичного представителя.При этом методе базовые алгоритмы являются представителями одного семейства, обучаются параллельно и практически независимо друг от друга, а конечные результаты лишь агрегируются.
Нам нужно, чтобы на вход слабым алгоритмам подавались разные данные, а не один и тот же набор, потому что тогда результат базовых моделей будет идентичен и смысла в них не будет. Чтобы понять, как исходный набор данных делится для формирования входных выборок для слабых алгоритмов, используется концепция самозагрузка .
При использовании бутстрапа из исходной выборки берется один случайный элемент, записывается в обучающую выборку, а затем возвращается обратно.
Это делается n раз, где n — желаемый размер обучающей выборки.
Существует правило, что в обучающей выборке в конечном итоге будет ~0,632*n различных объектов.
Таким образом, для m слабых алгоритмов необходимо сформировать m обучающих выборок.
Образцы начальной загрузки в значительной степени независимы.
Отчасти поэтому говорят, что базовые алгоритмы обучаются самостоятельно на выборках.
Что касается агрегирования выходов базовых алгоритмов, то в случае задачи классификации зачастую просто выбирается наиболее часто встречающийся класс, а в случае задачи регрессии результаты алгоритмов усредняются (рис.
3).
.
В формуле под ай относится к результатам основных алгоритмов.
Рисунок 3 Общий процесс показан на рисунке ниже (рис.
4):
Рисунок 4 Случайный лес Бэггинг направлен на уменьшение разброса (дисперсии) данных, и часто этот метод проявляется в виде алгоритма случайного леса, где слабыми моделями являются довольно глубокие случайные деревья.
Однако при построении случайного леса используется другой прием, например метод случайных подпространств.
Начальная загрузка не только выбирает некоторые объекты в нашем наборе данных, но также выбирает случайное подмножество функций.
В результате наша условная матрица признаков сокращается как по строкам, так и по столбцам (рис.
5).
Это помогает реально снизить корреляцию между слабыми учениками.
Рисунок 5 Ссылки на библиотеки для использования метода приведены ниже: Классификация Регрессия
Повышение
В этом случае модели уже не обучаются отдельно друг от друга, а каждая последующая исправляет ошибки предыдущей.То есть можно сказать, что если один слабый алгоритм не смог выявить какую-либо закономерность в данных, потому что это было для него сложно, то это должна сделать следующая модель.
Но у этого подхода есть недостаток: работу алгоритма сложно распараллелить из-за зависимости предыдущего и последующего шагов.
Повышение направлено на уменьшение систематической ошибки в данных, а не на уменьшение их разброса.
Поэтому в качестве базовых алгоритмов можно принять модели с достаточно большой погрешностью, например мелкие случайные деревья.
Рисунок 6 Типичными представителями бустинга являются две модели: градиентный буст и AdaBoost. Оба решают одну и ту же задачу оптимизации разными способами: нахождение итоговой модели, представляющей собой взвешенную сумму слабых алгоритмов (рис.
6).
Повышение градиента использует типичный алгоритм градиентного спуска для решения проблемы.
Когда придет время добавить в ансамбль новый слабый алгоритм, сделайте следующее:
- Найден оптимальный вектор сдвига, улучшающий предыдущий ансамбль алгоритмов.
- Этот вектор сдвига является антиградиентом функции ошибок предыдущего ансамбля моделей.
- Благодаря вектору сдвига мы знаем, какие значения должны принимать объекты в обучающем наборе
- А так как нам нужно найти следующий алгоритм в композиции, то находим тот, который минимизирует отклонение ответов от истинных.
На самом деле эти два алгоритма следует рассмотреть гораздо подробнее, выделив отдельную статью.
Ссылки на библиотеки для использования метода приведены ниже: Классификация по повышению градиента , Классификация AdaBoost Регрессия с повышением градиента , Регрессия AdaBoost
Заключение
Таким образом, мы увидели, что для повышения качества функционирования отдельных моделей машинного обучения существует ряд методик объединения их в ансамбли.Эти методы уже включены в программные продукты, и вы можете использовать их для улучшения своего решения.
Однако, с моей точки зрения, при решении проблемы не следует сразу за них браться.
Лучше сначала попробовать одну простую индивидуальную модель, понять, как она работает на конкретных данных, а затем использовать ансамбли.
Теги: #Машинное обучение #Большие данные #стекирование #ансамбль дерева регрессии #ускорение
-
Как Выбрать Лучший Планшетный Сканер
19 Oct, 24 -
Останавливаться!!! Вам Не Нужны Микросервисы
19 Oct, 24 -
Нейроморфные Вычисления И Их Достижения
19 Oct, 24 -
Миф О Бесполезности Qos Без Перегрузки Сети
19 Oct, 24 -
Патриарх Кирилл Об Нло
19 Oct, 24