Методы ансамбля, повышение, AdaBoost, машинное обучение

Методы ансамбля, часть 2. Алгоритм AdaBoost

Теоретическая и математическая интуиция, стоящая за техникой AdaBoost

Эта статья является продолжением предыдущей статьи (Техники ансамбля, часть 1 — Упаковывание и склеивание). Основное внимание будет уделено следующему очень важному ансамблевому методу повышения, то есть AdaBoost. Как мы видели в предыдущей статье, основная идея методов ансамбля состоит в том, чтобы объединить множество слабых учеников в сильных оценщиков. Таким образом, только после этого Boosting в основном работает путем последовательного обучения предикторов путем последовательного обучения. Это итерационная процедура, в которой каждый оценщик пытается исправить неверный прогноз своих предшественников. К основным методам усиления относятся:

  1. Адаптивное повышение (AdaBoost)
  2. Повышение градиента
  3. Экстремальное повышение градиента (Xgboost)

Проблема с этим методом последовательного обучения заключается в том, что его нельзя распараллелить, как это было сделано при пакетировании и вставке.

1.AdaBoost: основная идея этого алгоритма заключается в том, что новый предиктор корректирует своего предшественника, уделяя больше внимания обучающим экземплярам, ​​для которых предиктор был неправильно классифицирован или недоработан. Это делается путем обновления весов, путем увеличения относительного веса неподходящих или неправильно классифицированных обучающих экземпляров, чтобы сделать следующий прогноз, а затем эта процедура повторяется до тех пор, пока не будут выполнены требуемые условия. AdaBoost добавляет эти последовательные оценки в ансамбль, постепенно улучшая его. Когда приходят тестовые данные, они последовательно проходят через все базовые учащиеся, и окончательный прогноз делается на основе весов, присвоенных каждому предикторам. Его можно использовать как для регрессии, так и для задачи классификации.

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

Теперь рассмотрим шаг за шагом и математически его алгоритм,

  1. Изначально каждому экземпляру присваивается одинаковый вес w(i)=(1/m), где m — общее количество экземпляров.
  2. Первый базовый ученик будет создан с помощью пней дерева решений в AdaBoost. Пни решений в основном представляют собой Дерево решений с макс. глубина 1, состоящая из одного узла решения и двух листовых узлов.

3. Выбор наилучшего решения из множества будет осуществляться на основе примеси Джини или критерия энтропии. То же самое можно найти в этой статье.

4. После обучения первого базового обучаемого взвешенная ошибка r(j) будет вычислена для неправильно классифицированного или неподходящего класса на основе прогноза первого базового обучаемого (y(observer) != y(predicted)). Формула для частоты ошибок приведена ниже.

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

где η — гиперпараметр скорости обучения (по умолчанию 1). Он влияет на веса слабых учеников в окончательном прогнозе ансамбля. Чем точнее предиктор, тем больше ему будут присвоены веса.

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

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

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

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

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

Дескриптор Твиттера: https://twitter.com/sdeeksha07

Среда: sdeeksha07.medium.com

Использованная литература:

  1. https://scikit-learn.org/stable/modules/ensemble.html
  2. O’Reilly Media, Inc. Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow.
  3. Плейлист Криша Найка по машинному обучению на You-tube: https://www.youtube.com/watch?v=NLRO1-jp5F8
  4. Мастерство машинного обучения Youtube: https://www.youtube.com/watch?v=kzcetBfltx0
  5. Мастерство машинного обучения Youtube: https://www.youtube.com/watch?v=peh2l4dePBc&t=3s