Буст в машинном обучении: что такое, функции, типы и особенности

Опубликовано: 2020-05-29

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

Оглавление

Что такое бустинг в машинном обучении?

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

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

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

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

Итак, в этом случае у нас есть пять классификаторов, из которых три классификатора помечают электронное письмо как «Спам», поэтому мы будем считать электронное письмо «Спамом» по умолчанию, поскольку этот класс имеет более высокий голос, чем «Не спам». категория.

Этот пример должен был дать вам представление о том, что такое алгоритмы повышения. Они более сложны, чем это.

Взгляните на: 25 вопросов и ответов на собеседовании по машинному обучению

Как они работают?

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

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

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

Узнайте больше: 5 прорывных приложений машинного обучения

Различные виды алгоритмов повышения

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

  1. Адаптивное повышение (также известное как AdaBoosta)
  2. Повышение градиента
  3. XGBoost

Мы кратко обсудим первые два, AdaBoost и Gradient Boosting, в этой статье. XGBoost — гораздо более сложная тема, которую мы обсудим в другой статье.

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

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

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

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

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

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

Вот пример AdaBoost в Python:

из sklearn.ensemble импортировать AdaBoostClassifier

из sklearn.datasets импортировать make_classification

X, Y = make_classification (n_samples = 100, n_features = 2, n_informative = 2,

n_redundant=0, n_repeated=0, random_state=102)

clf = AdaBoostClassifier (n_estimators = 4, random_state = 0, алгоритм = 'SAMME')

clf.fit(X, Y)

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

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

Он создает новых базовых учеников, которые могут коррелировать с отрицательным градиентом функции потерь и которые связаны со всей системой. В Python вам придется использовать Gradient Tree Boosting (также известный как GBRT). Вы можете использовать его для классификации, а также для задач регрессии.

Вот пример повышения градиентного дерева в Python:

из sklearn.ensemble импортировать GradientBoostingRegressor

модель = GradientBoostingRegressor (n_estimators = 3, learning_rate = 1)

модель.fit(X,Y)

# для классификации

из sklearn.ensemble импортировать GradientBoostingClassifier

модель = GradientBoostingClassifier()

модель.fit(X,Y)

Особенности бустинга в машинном обучении

У бустинга есть много преимуществ, и, как и у любого другого алгоритма, у него есть свои ограничения:

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

Читайте также: Идеи проектов машинного обучения для начинающих

Куда пойти отсюда?

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

Мы также обсудили его различные виды. Мы узнали об AdaBoost и Gradient Boosting, поделившись их примерами. Если вам интересно узнать больше о машинном обучении, ознакомьтесь с дипломом PG IIIT-B и upGrad в области машинного обучения и искусственного интеллекта, который предназначен для работающих профессионалов и предлагает более 450 часов тщательного обучения, более 30 тематических исследований и заданий, IIIT- Статус B Alumni, более 5 практических практических проектов и помощь в трудоустройстве в ведущих фирмах.

Как я могу определить ускорение в машинном обучении простыми словами?

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

Как работает алгоритм повышения?

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

Каковы различные виды алгоритмов повышения и их особенности?

Различные типы: адаптивное повышение, повышение градиента и XGBoost. У бустинга есть такие характеристики, как неявный выбор функций. Деревья решений менее надежны, чем способности предсказания. Кроме того, масштабирование сложнее, потому что оценки основаны на предыдущих. И интерпретация прогнозов наддува естественна, поскольку это ансамблевая модель.