Ансамблевое обучение - это стратегия, в которой мы пытаемся агрегировать прогнозы другой группы предикторов, чтобы повысить производительность нашей модели. В отличие от обычных подходов к обучению, которые пытаются построить одного учащегося на основе данных обучения, методы ансамбля пытаются создать набор учащихся и объединить их. Ансамблевое обучение также называется обучением на основе комитетов или обучением нескольким системам классификатора. Если вы можете увидеть архитектуру ансамбля, то там вы можете увидеть, что присутствуют разные типы учащихся, которые называются базовыми учащимися. И эти базовые обучающиеся могут быть KNN, SVM, логистической регрессией, деревом решений или любым другим алгоритмом обучения. Многие методы ансамбля содержат алгоритмы обучения одного и того же типа, которые называются однородными ансамблями, но есть также методы, которые содержат алгоритмы обучения разных типов, и они называются гетерогенными ансамблями.

Основная цель методов ансамбля - уменьшить ошибку обобщения, которая представлена ​​как: -

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

В основном используются 4 вида ансамблевых техник:

  1. Бэггинг (агрегирование бутстрапа)
  2. Повышение
  3. Штабелирование
  4. Каскадный

Упаковка

Название «Баггинг» произошло от аббревиатуры Bootstrap Aggregating [Breiman, 1996d]. Есть два основных ингредиента Bagging: первая - бутстрап и агрегация. Мы знаем, что объединение независимых базовых учащихся приведет к резкому уменьшению количества ошибок, и поэтому мы хотим, чтобы базовые учащиеся были как можно более независимыми. В Bagging мы случайным образом выбираем разные подмножества набора данных и объединяем их с помощью Bootstrap Sampling. Подробно, учитывая набор обучающих данных, содержащий 'n' обучающих примеров, выборка из "m" обучающих примеров будет сгенерирована путем выборки с заменой. В Bagging мы использовали самые популярные стратегии для агрегирования результатов базовых учащихся, то есть выяснения большинства голосов в задаче классификации и нахождения среднего значения в задаче регрессии.

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

  1. Создавайте подмножества с заменой: это означает, что каждый элемент может входить в разные подмножества.
  2. Примените модель для каждого подмножества образца.
  3. Все базовые модели работают параллельно и чаще всего независимы друг от друга.
  4. Теперь мы прогнозируем x-текст для каждой модели, а затем объединяем их прогнозы (путем голосования или усреднения), чтобы сформировать окончательный прогноз.

Случайный лес

Случайный лес - это широко используемый метод ансамбля (упаковки в пакеты), основным отличием от которого является использование случайного выбора характеристик. Базовыми учащимися в Random Forest являются Deep Decision Trees. Есть один гиперпараметр K, который контролирует включение случайности.

  • Построенное дерево решений идентично традиционному детерминированному дереву решений, когда значение K равно общему количеству функций.
  • Когда K = 1, объект будет выбран случайным образом.

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

Повышение

Boosting - это разновидность алгоритмов, которые могут превратить слабых учеников в сильных. В методе повышения каждый алгоритм, то есть базовые учащиеся, обучаются последовательно, и каждый раз, когда следующий учащийся пытается уменьшить ошибку, обновляя параметры и работая лучше по сравнению с предыдущим учащимся. Подводя итог, можно сказать, что усиление работает путем последовательного обучения различных групп учащихся и их комбинирования для прогнозирования, при этом учащиеся более позднего возраста больше сосредотачиваются на ошибках более ранних учащихся. Доступно множество методов повышения, но из них наиболее популярными являются AdaBoost (сокращение от Adaptive Boosting) и Gradient Boosting.

Адаптивное ускорение или AdaBoost

AdaBoost - это очень распространенная и широко используемая техника ускорения, в которой мы фактически пытаемся уделять немного больше внимания экземплярам обучения, которые не соответствовали предшественнику. Чтобы построить классификатор AdaBoost, предположим, что наш первый базовый классификатор обучен, и мы делаем некоторые прогнозы на обучающем наборе таким образом, чтобы относительные параметры неправильно классифицированных обучающих экземпляров затем увеличивались. Теперь второй классификатор обучается с использованием обновленных параметров и снова делает некоторые прогнозы при обучении, теперь тот же процесс повторяется снова и снова, пока не будет получен лучший результат. По сути, существует два гиперпараметра этого метода AdaBoost: один - скорость обучения, а другой - n_estimators, и мы можем получить лучшее значение этих гиперпараметров, выполнив перекрестную проверку или настройку гиперпараметров .

Повышение градиента

Еще один широко используемый алгоритм повышения - это градиентное усиление. Как и AdaBoost, Gradient Boosting работает путем последовательного добавления различных моделей в ансамбль, каждая из которых пытается исправить свою предшественницу. Однако в этом методе мы не обновляли веса экземпляров на каждой итерации, как это делает AdaBoost, в этом методе мы просто пытаемся подогнать новую модель к остаточным ошибкам, сделанным предыдущей моделью. В методе повышения градиента, если все базовые учащиеся являются деревьями решений, оно известно как дерево решений повышения градиента (GBDT). Скорость обучения масштабирует вклад каждого дерева. Если значение нашей скорости обучения слишком низкое, например 0,1, тогда вам понадобится больше деревьев в ансамбле, чтобы соответствовать обучающему набору, но прогнозы обычно лучше обобщаются. Этот метод регуляризации известен как усадка.

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

  1. XGBoost
  2. CatBoost
  3. LightGBM

Штабелирование

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

Каскадный

Согласно Google, каскадирование в простой англоязычной литературе означает «процесс, посредством которого что-то, обычно информация или знания, последовательно передается». Это очень мощный метод ансамблевого обучения, который в основном используется инженерами по машинному обучению, когда они хотят быть абсолютно уверены в точности. Вы можете понять эту технику каскадирования с помощью очень известной постановки задачи о том, является ли транзакция, совершенная пользователем, мошеннической или нет.

В этой постановке задачи у нас в основном два ярлыка класса: «0» означает не мошенническую транзакцию, а «1» означает мошенническую транзакцию. Набор данных сильно несбалансирован: 99,4% экземпляров относятся к классу «0» и только 0,6% экземпляров относятся к классу «1». Таким образом, очень сложно получить точный результат с помощью только одной модели, в этом случае нам нужно построить последовательность моделей (или каскадных моделей), чтобы получить наиболее точный результат. Эта модель обычно используется, когда цена ошибки очень высока. Вы можете получить четкое представление о том, как работает эта техника, с помощью этой диаграммы.

Шаги по получению результата с использованием каскадных моделей: -

  • Предположим, у вас есть точка запроса транзакции, мы передадим эту точку запроса модели 1, а модель 1 даст вам вероятность класса.
  • Предположим, что прогнозируемые вероятности задаются P (Yq = 0) и P (Yq = 1), где Yq - наша фактическая метка класса.
  • В этом случае мы устанавливаем порог 99%, что означает, что если P (Yq = 0) ›0,99, мы объявим окончательный прогноз не мошенническим.
  • Однако, если P (Yq = 0) ‹0,99, мы не очень уверены, является ли это мошеннической транзакцией, хотя существует высокая вероятность того, что транзакция не является мошеннической.
  • Итак, когда мы немного не уверены в предсказании, мы обучаем Модель 2, и тот же процесс повторится и в модели 2.
  • Если мы снова получим P (Yq = 0) ‹0,99, мы не уверены! Следовательно, мы передадим точку запроса другой модели 3 в каскаде, которая делает то же самое.
  • В таком случае в конце каскада находится человек, поэтому этот человек лично спрашивает клиента, совершает ли он эту транзакцию или нет.
  • Теперь мы абсолютно уверены в транзакции, если человек говорит, что он совершил эту транзакцию, то это не мошенническая транзакция, в противном случае мы можем сказать, что это мошенническая транзакция.

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

Это все о методе ансамблевого обучения. Надеюсь, вам понравилась эта статья.

Удачного обучения.