Пакетирование, повышение и укладка в машинном обучении

245

Каковы сходства и различия между этими 3 методами:

  • пакетированного
  • Повышая,
  • Штабелеры?

Какой самый лучший? И почему?

Можете ли вы дать мне пример для каждого?

Буча Лучиан
источник
3
для справочника из учебника рекомендую: «Ансамблевые методы: основы и алгоритмы» Чжоу, Чжи-Хуа
Вадим Смоляков
1
Смотрите здесь связанный вопрос .
Рикардо Круз

Ответы:

253

Все три являются так называемыми «мета-алгоритмами»: подходы, объединяющие несколько методов машинного обучения в одну прогностическую модель, чтобы уменьшить дисперсию ( суммирование ), смещение ( форсирование ) или улучшить прогностическую силу ( ансамбль псевдонимов стека ).

Каждый алгоритм состоит из двух шагов:

  1. Создание распределения простых моделей ML по подмножествам исходных данных.

  2. Объединение распределения в одну «агрегированную» модель.

Вот краткое описание всех трех методов:

  1. Баггинг (расшифровывается Б ootstrap Agg regat ING ) является способомчтобы уменьшить дисперсию вашего прогноза путем генерирования дополнительных данных для обучения из исходного набора данныхпомощью комбинации с повторениями для получения мультинаборы той же мощности / размеракак исходные данные. Увеличивая размер тренировочного набора, вы не сможете улучшить прогнозирующую силу модели, а просто уменьшите дисперсию, узко настраивая прогноз на ожидаемый результат.

  2. Повышение представляет собой двухэтапный подход, при котором сначала используются подмножества исходных данных для создания ряда моделей со средней эффективностью, а затем «повышается» их производительность путем объединения их вместе с использованием определенной функции стоимости (= большинство голосов). В отличие от пакетирования, при классическом повышении создание подмножества не является случайным и зависит от производительности предыдущих моделей: каждое новое подмножество содержит элементы, которые (вероятно, будут) неправильно классифицированы предыдущими моделями.

  3. Стекинг похож на бустинг: вы также применяете несколько моделей к исходным данным. Разница здесь, однако, в том, что у вас есть не просто эмпирическая формула для вашей весовой функции, а вы вводите метауровень и используете другую модель / подход для оценки входных данных вместе с выходными данными каждой модели для оценки весов или иными словами, определить, какие модели работают хорошо, а какие плохо, учитывая эти входные данные.

Вот сравнительная таблица:

Сравнительная таблица

Как видите, все это разные подходы к объединению нескольких моделей в лучшую, и здесь нет единственного победителя: все зависит от вашего домена и того, что вы собираетесь делать. Вы все еще можете рассматривать стекирование как своего рода ускорение прогресса , однако, сложность поиска хорошего подхода для вашего метауровня затрудняет применение этого подхода на практике.

Краткие примеры каждого:

  1. Упаковка : данные по озону .
  2. Повышение : используется для повышения точности оптического распознавания символов (OCR).
  3. Укладка : используется в классификации раковых микрочипов в медицине.
Александр Галкин
источник
8
Похоже, ваше определение повышения отличается от того, которое вы указали в вики (на которую вы ссылались) или в этой статье . Оба они говорят, что при повышении следующего классификатора используются результаты ранее обученных, но вы не упомянули об этом. Метод, который вы описываете с другой стороны, напоминает некоторые методы голосования / усреднения моделей.
Александр Родин
2
@ a-rodin: Спасибо, что указали на этот важный аспект, я полностью переписал этот раздел, чтобы лучше отразить это. Что касается вашего второго замечания, я понимаю, что повышение также является типом голосования / усреднения, или я вас неправильно понял?
Александр Галкин
@AlexanderGalkin Я имел в виду повышение градиента во время комментирования: это выглядит не как голосование, а как метод приближения итеративной функции. Однако, например, AdaBoost больше похож на голосование, поэтому я не буду спорить об этом.
Александр Родин
3
В первом предложении вы говорите, что Повышение уменьшает смещение, но в таблице сравнения вы говорите, что оно увеличивает предсказательную силу. Это правда?
Бен Линдсей
68

Bagging :

  1. параллельный ансамбль: каждая модель строится независимо

  2. стремиться уменьшить дисперсию , а не смещение

  3. подходит для моделей с высоким отклонением и низким смещением (сложные модели)

  4. Примером метода на основе дерева является случайный лес , который развивает полностью выросшие деревья (обратите внимание, что RF модифицирует выращенную процедуру, чтобы уменьшить корреляцию между деревьями)

Повышение :

  1. последовательный ансамбль: попробуйте добавить новые модели, которые хорошо работают там, где нет предыдущих моделей

  2. стремиться уменьшить смещение , а не дисперсию

  3. подходит для моделей с низким отклонением и высоким смещением

  4. Примером метода на основе дерева является повышение градиента

yuqian
источник
5
Комментирование каждого из пунктов, чтобы ответить, почему это так и как это достигается, было бы большим улучшением в вашем ответе.
Тим
2
Можете ли вы поделиться каким-либо документом / ссылкой, которая объясняет, что повышение снижает дисперсию и как это происходит? Просто хочу глубже понять
GeorgeOfTheRF
1
Спасибо, Тим, я добавлю несколько комментариев позже. @ML_Pro, из процедуры повышения (например, на странице 23 cs.cornell.edu/courses/cs578/2005fa/… ) понятно, что повышение может уменьшить смещение.
Юйцянь
43

Просто чтобы уточнить ответ Юйцяня немного. Идея создания мешков заключается в том, что когда вы переобучаетесь непараметрическим методом регрессии (обычно деревьями регрессии или классификации, но это может быть практически любой непараметрический метод), вы склонны переходить к высокой дисперсии, никакой (или низкой) части смещения / Дисперсионный компромисс. Это связано с тем, что модель переоснащения является очень гибкой (так что низкий уклон по многим повторным выборкам из одной и той же совокупности, если таковые были доступны), но имеет высокую изменчивость (если я собираю образец и перегоняю его, а вы собираете образец и перегоняете его, наш результаты будут отличаться, потому что непараметрическая регрессия отслеживает шум в данных). Что мы можем сделать? Мы можем взять много повторных сэмплов (из начальной загрузки), каждый из которых соответствует, и усреднить их вместе. Это должно привести к тому же смещению (низкому), но устранить некоторые различия,

Повышение градиента в своей основе работает с непараметрическими регрессиями UNDERFIT, которые слишком просты и, следовательно, недостаточно гибки, чтобы описать реальные отношения в данных (т. Е. Смещены), но, поскольку они не соответствуют, имеют низкую дисперсию (вы склонны чтобы получить тот же результат, если вы собираете новые наборы данных). Как вы исправите это? По сути, если вы недостаточно приспособлены, ОСТАТКИ вашей модели по-прежнему содержат полезную структуру (информацию о населении), поэтому вы дополняете имеющееся у вас дерево (или любой непараметрический предиктор) деревом, построенным на остатках. Это должно быть более гибким, чем оригинальное дерево. Вы неоднократно генерируете все больше и больше деревьев, каждое на шаге k, дополненное взвешенным деревом, основанным на дереве, подобранном по остаткам с шага k-1. Одно из этих деревьев должно быть оптимальным, так что в итоге вы либо взвешиваете все эти деревья вместе, либо выбираете то, которое кажется наиболее подходящим. Таким образом, повышение градиента - это способ построить группу более гибких деревьев-кандидатов.

Как и все непараметрические регрессионные или классификационные подходы, иногда хорошо работает пакетирование или повышение, иногда один или другой подход посредственны, а иногда один или другой подход (или оба) могут привести к сбою и сбою.

Кроме того, оба эти метода могут применяться к регрессионным подходам, отличным от деревьев, но они чаще всего связаны с деревьями, возможно, из-за того, что трудно установить параметры, чтобы избежать недостаточной подгонки или подгонки.

AlaskaRon
источник
3
+1 за наряд = дисперсия, подгон = аргумент смещения! Одна из причин использования деревьев решений заключается в том, что они являются структурно нестабильными, и, следовательно, больше выигрывают от небольших изменений условий. ( abbottanalytics.com/assets/pdf/… )
Марк Хорват
3

Короче говоря, Bagging и Boosting обычно используются внутри одного алгоритма, в то время как Stacking обычно используется для суммирования нескольких результатов из разных алгоритмов.

  • Упаковка в пакеты : загрузите подмножества объектов и выборок, чтобы получить несколько прогнозов и, например, усреднить (или иным образом) результаты Random Forest, которые устраняют дисперсию и не имеют проблемы с переобучением.
  • Повышение : Отличие от Bagging заключается в том, что более поздняя модель пытается узнать, например , ошибку, допущенную предыдущей GBMи XGBoostкоторая устраняет дисперсию, но имеет проблему с переобучением.
  • Укладка : обычно используется в соревнованиях, когда используется несколько алгоритмов для тренировки с одним и тем же набором данных и усреднения (макс, мин или других комбинаций) результата, чтобы получить более высокую точность прогноза.
MJeremy
источник
2

как в пакетировании, так и в бустинге используется единый алгоритм обучения для всех этапов; но они используют разные методы обработки учебных образцов. оба являются ансамблевым методом обучения, который объединяет решения из нескольких моделей.
Пакетирование :
1. повторная выборка обучающих данных для получения M подмножеств (начальной загрузки);
2. обучает M классификаторов (тот же алгоритм) на основе M наборов данных (разные выборки);
3. итоговый классификатор объединяет М выходов путем голосования;
вес образцов одинаково;
вес классификаторов одинаковый;
уменьшает погрешность за счет уменьшения дисперсии
Boosting : здесь сосредоточимся на алгоритме adaboost
1. начнем с одинакового веса для всех выборок в первом раунде;
2. в следующих раундах M-1 увеличьте веса выборок, которые были неправильно классифицированы в последнем раунде, уменьшите веса выборок, правильно классифицированных в последнем раунде.
3. Используя взвешенное голосование, окончательный классификатор объединяет несколько классификаторов из предыдущих раундов и дает большие веса к классификаторам с меньшим количеством ошибочных классификаций.
пошаговая перевеска образцов; веса для каждого раунда, основанные на результатах последнего раунда,
повторно взвешивают образцы (повышение) вместо повторной выборки (расфасовка).

Шрек
источник
0

Пакетирование и бустинг имеют тенденцию использовать много однородных моделей.

Стекирование объединяет результаты разнородных типов моделей.

Поскольку ни один тип модели не подходит лучше всего для любого дистрибутива, вы можете понять, почему это может повысить предсказуемость.

штифтик
источник