Адаптивный бустинг: алгоритм с мировым признанием

Ансамблевые методы в Python

Román de las Heras

Data Scientist, Appodeal

Алгоритм с мировым признанием

Об AdaBoost:

  • Предложен Йоавом Фройндом и Робертом Шапире (1997)
  • Лауреат премии Гёделя (2003)
  • Первый практически применимый алгоритм бустинга
  • Широко известный и востребованный метод ансамблевого обучения

Премия Гёделя

Ансамблевые методы в Python

Свойства AdaBoost

  1. Объекты выбираются согласно распределению выборки
    • Трудные объекты имеют больший вес
    • Изначально веса равномерные
  2. Оценщики объединяются взвешенным голосованием по большинству
    • Лучшие оценщики получают больший вес
  3. Гарантированное улучшение
  4. Классификация и регрессия

adaboost-sample.bmp

Ансамблевые методы в Python

Классификатор AdaBoost в scikit-learn

AdaBoostClassifier

from sklearn.ensemble import AdaBoostClassifier
clf_ada = AdaBoostClassifier(
   base_estimator,
   n_estimators,
   learning_rate
)

Параметры

  • base_estimator
    • По умолчанию: Decision Tree (max_depth=1)
  • n_estimators
    • По умолчанию: 50
  • learning_rate
    • По умолчанию: 1.0
    • Компромисс между n_estimators и learning_rate
Ансамблевые методы в Python

Регрессор AdaBoost в scikit-learn

AdaBoostRegressor

from sklearn.ensemble import AdaBoostRegressor
reg_ada = AdaBoostRegressor(
   base_estimator,
   n_estimators,
   learning_rate,
   loss
)

Параметры

  • base_estimator
    • По умолчанию: Decision Tree (max_depth=3)
  • loss
    • linear (по умолчанию)
    • square
    • exponential
Ансамблевые методы в Python

Давайте потренируемся!

Ансамблевые методы в Python

Preparing Video For Download...