Каковы сходства и различия между этими 3 методами:
- пакетированного
- Повышая,
- Штабелеры?
Какой самый лучший? И почему?
Можете ли вы дать мне пример для каждого?
machine-learning
boosting
ensemble
bagging
model-averaging
Буча Лучиан
источник
источник
Ответы:
Все три являются так называемыми «мета-алгоритмами»: подходы, объединяющие несколько методов машинного обучения в одну прогностическую модель, чтобы уменьшить дисперсию ( суммирование ), смещение ( форсирование ) или улучшить прогностическую силу ( ансамбль псевдонимов стека ).
Каждый алгоритм состоит из двух шагов:
Создание распределения простых моделей ML по подмножествам исходных данных.
Объединение распределения в одну «агрегированную» модель.
Вот краткое описание всех трех методов:
Баггинг (расшифровывается Б ootstrap Agg regat ING ) является способомчтобы уменьшить дисперсию вашего прогноза путем генерирования дополнительных данных для обучения из исходного набора данныхпомощью комбинации с повторениями для получения мультинаборы той же мощности / размеракак исходные данные. Увеличивая размер тренировочного набора, вы не сможете улучшить прогнозирующую силу модели, а просто уменьшите дисперсию, узко настраивая прогноз на ожидаемый результат.
Повышение представляет собой двухэтапный подход, при котором сначала используются подмножества исходных данных для создания ряда моделей со средней эффективностью, а затем «повышается» их производительность путем объединения их вместе с использованием определенной функции стоимости (= большинство голосов). В отличие от пакетирования, при классическом повышении создание подмножества не является случайным и зависит от производительности предыдущих моделей: каждое новое подмножество содержит элементы, которые (вероятно, будут) неправильно классифицированы предыдущими моделями.
Стекинг похож на бустинг: вы также применяете несколько моделей к исходным данным. Разница здесь, однако, в том, что у вас есть не просто эмпирическая формула для вашей весовой функции, а вы вводите метауровень и используете другую модель / подход для оценки входных данных вместе с выходными данными каждой модели для оценки весов или иными словами, определить, какие модели работают хорошо, а какие плохо, учитывая эти входные данные.
Вот сравнительная таблица:
Как видите, все это разные подходы к объединению нескольких моделей в лучшую, и здесь нет единственного победителя: все зависит от вашего домена и того, что вы собираетесь делать. Вы все еще можете рассматривать стекирование как своего рода ускорение прогресса , однако, сложность поиска хорошего подхода для вашего метауровня затрудняет применение этого подхода на практике.
Краткие примеры каждого:
источник
Bagging :
параллельный ансамбль: каждая модель строится независимо
стремиться уменьшить дисперсию , а не смещение
подходит для моделей с высоким отклонением и низким смещением (сложные модели)
Примером метода на основе дерева является случайный лес , который развивает полностью выросшие деревья (обратите внимание, что RF модифицирует выращенную процедуру, чтобы уменьшить корреляцию между деревьями)
Повышение :
последовательный ансамбль: попробуйте добавить новые модели, которые хорошо работают там, где нет предыдущих моделей
стремиться уменьшить смещение , а не дисперсию
подходит для моделей с низким отклонением и высоким смещением
Примером метода на основе дерева является повышение градиента
источник
Просто чтобы уточнить ответ Юйцяня немного. Идея создания мешков заключается в том, что когда вы переобучаетесь непараметрическим методом регрессии (обычно деревьями регрессии или классификации, но это может быть практически любой непараметрический метод), вы склонны переходить к высокой дисперсии, никакой (или низкой) части смещения / Дисперсионный компромисс. Это связано с тем, что модель переоснащения является очень гибкой (так что низкий уклон по многим повторным выборкам из одной и той же совокупности, если таковые были доступны), но имеет высокую изменчивость (если я собираю образец и перегоняю его, а вы собираете образец и перегоняете его, наш результаты будут отличаться, потому что непараметрическая регрессия отслеживает шум в данных). Что мы можем сделать? Мы можем взять много повторных сэмплов (из начальной загрузки), каждый из которых соответствует, и усреднить их вместе. Это должно привести к тому же смещению (низкому), но устранить некоторые различия,
Повышение градиента в своей основе работает с непараметрическими регрессиями UNDERFIT, которые слишком просты и, следовательно, недостаточно гибки, чтобы описать реальные отношения в данных (т. Е. Смещены), но, поскольку они не соответствуют, имеют низкую дисперсию (вы склонны чтобы получить тот же результат, если вы собираете новые наборы данных). Как вы исправите это? По сути, если вы недостаточно приспособлены, ОСТАТКИ вашей модели по-прежнему содержат полезную структуру (информацию о населении), поэтому вы дополняете имеющееся у вас дерево (или любой непараметрический предиктор) деревом, построенным на остатках. Это должно быть более гибким, чем оригинальное дерево. Вы неоднократно генерируете все больше и больше деревьев, каждое на шаге k, дополненное взвешенным деревом, основанным на дереве, подобранном по остаткам с шага k-1. Одно из этих деревьев должно быть оптимальным, так что в итоге вы либо взвешиваете все эти деревья вместе, либо выбираете то, которое кажется наиболее подходящим. Таким образом, повышение градиента - это способ построить группу более гибких деревьев-кандидатов.
Как и все непараметрические регрессионные или классификационные подходы, иногда хорошо работает пакетирование или повышение, иногда один или другой подход посредственны, а иногда один или другой подход (или оба) могут привести к сбою и сбою.
Кроме того, оба эти метода могут применяться к регрессионным подходам, отличным от деревьев, но они чаще всего связаны с деревьями, возможно, из-за того, что трудно установить параметры, чтобы избежать недостаточной подгонки или подгонки.
источник
Смотрите мой пост в блоге по обучению ансамблю
Источники для этого изображения:
источник
Короче говоря, Bagging и Boosting обычно используются внутри одного алгоритма, в то время как Stacking обычно используется для суммирования нескольких результатов из разных алгоритмов.
Random Forest
, которые устраняют дисперсию и не имеют проблемы с переобучением.GBM
иXGBoost
которая устраняет дисперсию, но имеет проблему с переобучением.источник
как в пакетировании, так и в бустинге используется единый алгоритм обучения для всех этапов; но они используют разные методы обработки учебных образцов. оба являются ансамблевым методом обучения, который объединяет решения из нескольких моделей.
Пакетирование :
1. повторная выборка обучающих данных для получения M подмножеств (начальной загрузки);
2. обучает M классификаторов (тот же алгоритм) на основе M наборов данных (разные выборки);
3. итоговый классификатор объединяет М выходов путем голосования;
вес образцов одинаково;
вес классификаторов одинаковый;
уменьшает погрешность за счет уменьшения дисперсии
Boosting : здесь сосредоточимся на алгоритме adaboost
1. начнем с одинакового веса для всех выборок в первом раунде;
2. в следующих раундах M-1 увеличьте веса выборок, которые были неправильно классифицированы в последнем раунде, уменьшите веса выборок, правильно классифицированных в последнем раунде.
3. Используя взвешенное голосование, окончательный классификатор объединяет несколько классификаторов из предыдущих раундов и дает большие веса к классификаторам с меньшим количеством ошибочных классификаций.
пошаговая перевеска образцов; веса для каждого раунда, основанные на результатах последнего раунда,
повторно взвешивают образцы (повышение) вместо повторной выборки (расфасовка).
источник
Пакетирование и бустинг имеют тенденцию использовать много однородных моделей.
Стекирование объединяет результаты разнородных типов моделей.
Поскольку ни один тип модели не подходит лучше всего для любого дистрибутива, вы можете понять, почему это может повысить предсказуемость.
источник