Модели стекирования для получения прибыли

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

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

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

Что такое метаобучение?

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

Что такое стек?

Стекирование — еще один член семейства алгоритмов обучения ансамбля, который учится на выводах других учащихся ансамбля. Он использует несколько моделей регрессии или классификации и использует их прогнозы в качестве входных данных для алгоритма метаобучения для получения окончательного прогноза.

Sklearn предоставляет множество пакетов, которые можно использовать для стекирования, но в этой статье мы сосредоточимся на StackingClassifier.

from sklearn.ensemble import StackingClassifier

Мы можем выполнить два типа укладки.

  1. Наложение в один слой

2. Многоуровневая укладка

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

Знаете ли вы, сколько инженерных часов можно сэкономить, внедрив стратегию MLOps? Мы делаем. Узнай больше сегодня.

Сравнение базовых моделей с мета-обучаемыми

Давайте построим модель машинного обучения для классификации видов цветков ириса. Набор данных для решения проблемы поставляется с предустановленной библиотекой Scikit Learn. Мы создадим базовую модель, используя дерево решений, и рассчитаем оценку.

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

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

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

Укладка против мешков

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

  1. Стекирование часто учитывает разнородных слабых учащихся, тогда как бэггинг обычно работает с однородными учащимися.
  2. Бэггинг в основном фокусируется на построении модели с меньшей дисперсией, тогда как методы стекирования пытаются создать модель с меньшим смещением, чем их слабые ученики.
  3. Бэггинг использует средневзвешенные значения для объединения нескольких моделей и последующего создания окончательного прогноза, тогда как стек использует логистическую регрессию для объединения нескольких моделей в один мета-обучающий.
  4. Методы стекирования обучают несколько алгоритмов на одних и тех же данных, чтобы получить более высокую точность, тогда как при пакетировании данные делятся на небольшие подмножества и передаются каждому слабому ученику, а затем прогнозы объединяются с использованием агрегатной функции для повышения точности.

Как выбрать между упаковкой и штабелированием

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

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

Рекомендуемая литература для чтения

1. Stacking ensemble algorithm for improving the biases
2. Combining Stacking With Bagging To Improve A Learning Algorithm
3. Is Combining Classifiers with Stacking Better than Selecting the Best One?

Заключение

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

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

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение наших еженедельных информационных бюллетеней (Еженедельник глубокого обучения и Информационный бюллетень Comet), присоединиться к нам в Slack и следить за Comet в Twitter и LinkedIn, чтобы получать ресурсы, события и многое другое, что поможет вам быстрее создавать лучшие модели машинного обучения.