Методы ансамбля, повышение, AdaBoost, машинное обучение
Методы ансамбля, часть 2. Алгоритм AdaBoost
Теоретическая и математическая интуиция, стоящая за техникой AdaBoost
Эта статья является продолжением предыдущей статьи (Техники ансамбля, часть 1 — Упаковывание и склеивание). Основное внимание будет уделено следующему очень важному ансамблевому методу повышения, то есть AdaBoost. Как мы видели в предыдущей статье, основная идея методов ансамбля состоит в том, чтобы объединить множество слабых учеников в сильных оценщиков. Таким образом, только после этого Boosting в основном работает путем последовательного обучения предикторов путем последовательного обучения. Это итерационная процедура, в которой каждый оценщик пытается исправить неверный прогноз своих предшественников. К основным методам усиления относятся:
- Адаптивное повышение (AdaBoost)
- Повышение градиента
- Экстремальное повышение градиента (Xgboost)
Проблема с этим методом последовательного обучения заключается в том, что его нельзя распараллелить, как это было сделано при пакетировании и вставке.
1.AdaBoost: основная идея этого алгоритма заключается в том, что новый предиктор корректирует своего предшественника, уделяя больше внимания обучающим экземплярам, для которых предиктор был неправильно классифицирован или недоработан. Это делается путем обновления весов, путем увеличения относительного веса неподходящих или неправильно классифицированных обучающих экземпляров, чтобы сделать следующий прогноз, а затем эта процедура повторяется до тех пор, пока не будут выполнены требуемые условия. AdaBoost добавляет эти последовательные оценки в ансамбль, постепенно улучшая его. Когда приходят тестовые данные, они последовательно проходят через все базовые учащиеся, и окончательный прогноз делается на основе весов, присвоенных каждому предикторам. Его можно использовать как для регрессии, так и для задачи классификации.
После того, как все оценщики будут обучены, этим оценщикам будут присвоены разные веса в зависимости от их точности на взвешенных обучающих экземплярах, чтобы сделать окончательный прогноз ансамбля.
Теперь рассмотрим шаг за шагом и математически его алгоритм,
- Изначально каждому экземпляру присваивается одинаковый вес w(i)=(1/m), где m — общее количество экземпляров.
- Первый базовый ученик будет создан с помощью пней дерева решений в 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
Использованная литература:
- https://scikit-learn.org/stable/modules/ensemble.html
- O’Reilly Media, Inc. Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow.
- Плейлист Криша Найка по машинному обучению на You-tube: https://www.youtube.com/watch?v=NLRO1-jp5F8
- Мастерство машинного обучения Youtube: https://www.youtube.com/watch?v=kzcetBfltx0
- Мастерство машинного обучения Youtube: https://www.youtube.com/watch?v=peh2l4dePBc&t=3s