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

Конечная цель каждой модели машинного обучения или, в данном случае, метода — уменьшить общую ошибку. Общая ошибка для модели машинного обучения определяется как:

Общая ошибка = ошибка смещения + ошибка дисперсии + шум

Один из подходов к реализации концепции заключается в построении нескольких независимых моделей из преобразованных наборов данных. Мы называем этот метод бэггингом. Бэггинг работает над уменьшением элемента ошибки дисперсии в общей ошибке. Другой метод заключается в построении зависимых моделей, в которых каждая модель претерпела некоторое преобразование на основе некоторого алгоритма по сравнению со своей предшественницей. Этот метод называется бустингом. Повышение работает над уменьшением составляющей ошибки смещения от общей ошибки.

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

Бэгинг

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

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

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

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

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

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

Наконец, мы проводим голосование, и каждый классификатор дерева решений дает результат. Результат, за который проголосовало максимальное количество классификаторов, считается окончательным прогнозируемым результатом.

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

Повышение –

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

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

Вот некоторые общеизвестные методы, следующие за алгоритмом повышения:

1) Адаптивное повышение (AdaBoost).

2)Усиление градиентного дерева.

3) XGBoost.

Адабуст –

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

Для задачи бинарной классификации

Совокупность 1 — α1 + α2 + α3,

Совокупность 2 — α4 + α5 + α6,

Если Совокупность 1 > Совокупность 2, то окончательный прогноз = y1 или

Если агрегат 1‹ агрегат 2, то окончательный прогноз = y2.

Существует множество способов реализации слабых классификаторов. Один из распространенных способов сделать это — использовать пни решений. Пни решений — это деревья решений только с одним корневым узлом и двумя конечными узлами. В образце набора данных для бинарной классификации мы решаем, какое решение лучше всего классифицирует данные. Мы решаем это, используя такие методы, как примесь Джини или получение информации. Одна из идей повышения состоит в том, чтобы новые классификаторы учились у предыдущих классификаторов. Мы делаем это, используя концепцию выборочных весов. Мы назначаем веса выборки строкам нашего набора данных, которые мы будем называть точками данных. Первоначально точкам данных присваивается вес выборки 1/N; где N — общее количество точек данных. Мы вычисляем общую ошибку для нашего пня решения. Здесь общая ошибка определяется как:

И теперь мы вычисляем объем высказывания нашего пня решения как:

Здесь αt — количество слов нашего соответствующего решения. Теперь мы модифицируем наши веса для точек данных в соответствии с формулой:

Здесь Wi представляет модифицированный вес. Wi-1 представляет собой начальный вес.

представляет число Эйлера, а

α - количество сай, рассчитанное ранее.

+α используется для изменения весов точек данных, соответствующих правильным классификациям.

-α используется для изменения весов точек данных, соответствующих ошибочным классификациям.

Затем мы нормализуем веса, чтобы получить их правильную меру по общей шкале.

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

Затем мы снова присваиваем вес 1/N точкам данных, соответствующим новому набору данных, и следуем той же процедуре. Таким образом, каждый пень учится на предыдущих, и каждый пень последовательно строится на предыдущих пенях, построенных до него.

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

Укладка

При стекинге мы обучаем модель на категориальных выходных данных (обычно для задач классификации) или числовых выходных данных, полученных из других моделей. Эти модели используются в качестве базовых моделей и не обязательно должны быть одинаковыми. Мы можем использовать SVM с деревьями решений с регрессорами и т. д. Затем мы передаем выходные данные каждого классификатора в качестве входных данных для метамодели. Затем метамодель обучается на этом наборе данных и делает окончательный прогноз, который принимается в качестве окончательного результата метода ансамблевого суммирования. Таким образом, наша метамодель действует как часть алгоритма на диаграмме каркаса ансамбля, приведенной в начале этого поста.

Вывод

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