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

Продолжай учиться…

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

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

Что такое повышение?

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

Типы бустинга

AdaBoost (Ada ptive Boost)

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

Как мы видим выше, первая точка решения (D1) отделяет (+) синюю область от (-) красной области. Мы замечаем, что D1 имеет три неправильно классифицированных (+) в красной области. Неправильная классификация (+) теперь будет иметь больший вес, чем другие наблюдения, и будет передана второму учащемуся. Модель продолжит работу и будет корректировать ошибку, с которой столкнулась предыдущая модель, до тех пор, пока не будет построен наиболее точный предсказатель.

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

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

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

  • Подобрать модель к данным, F1 (x) = y
  • Подобрать модель для остатков, h1 (x) = y − F1 (x)
  • Создайте новую модель, F2 (x) = F1 (x) + h1 (x)
  • Комбинируя слабого ученика за слабым, наша окончательная модель способна учесть большую часть ошибок исходной модели и уменьшить эту ошибку с течением времени.

XGBoost

XGBoost означает e X treme G radient B oosting. XGBoost - это реализация деревьев решений с градиентным усилением, разработанная для обеспечения скорости и производительности. Машины для повышения градиента обычно очень медленно реализуются из-за последовательного обучения модели. Следовательно, они не очень масштабируемы. Таким образом, XGBoost ориентирован на скорость вычислений и производительность модели. XGBoost обеспечивает:

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

Если вы хотите узнать больше о XGBoost, следите за этим постом.

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

Спасибо за прочтение! ❤

Следите за обновлениями!