Що таке Boosting?

Екстремальний градієнтний бустинг з XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Огляд Boosting

  • Це не окремий алгоритм машинного навчання
  • Концепція, яку можна застосувати до набору моделей ML
    • «Метаалгоритм»
  • Ансамблевий метаалгоритм, що перетворює багато слабких учнів на одного сильного
Екстремальний градієнтний бустинг з XGBoost

Слабкі та сильні учні

  • Слабкий учень: алгоритм ML, трохи кращий за випадкове вгадування
    • Приклад: дерево рішень із точністю трохи вище 50%
  • Boosting перетворює колекцію слабких учнів на сильного
  • Сильний учень: будь-який алгоритм, який можна налаштувати для хорошої якості
Екстремальний градієнтний бустинг з XGBoost

Як реалізують boosting

  • Ітеративне навчання набору слабких моделей на підмножинах даних
  • Зважування кожного слабкого передбачення за якістю відповідного слабкого учня
  • Об'єднайте зважені передбачення, щоб отримати одне зважене передбачення
  • … яке значно краще за кожне окреме!
Екстремальний градієнтний бустинг з XGBoost

Приклад boosting

1 https://xgboost.readthedocs.io/en/latest/model.html
Екстремальний градієнтний бустинг з XGBoost

Оцінювання моделі через крос-валідацію

  • Крос-валідація: надійний спосіб оцінити якість моделі на невідомих даних
  • Створює багато неперекривних розбиттів train/test на тренувальних даних
  • Повертає середню якість на тестових вибірках для всіх розбиттів
Екстремальний градієнтний бустинг з XGBoost

Крос-валідація в XGBoost: приклад

import xgboost as xgb
import pandas as pd

churn_data = pd.read_csv("classification_data.csv")
churn_dmatrix = xgb.DMatrix(data=churn_data.iloc[:,:-1], label=churn_data.month_5_still_here)
params={"objective":"binary:logistic","max_depth":4}
cv_results = xgb.cv(dtrain=churn_dmatrix, params=params, nfold=4, num_boost_round=10, metrics="error", as_pandas=True)
print("Accuracy: %f" %((1-cv_results["test-error-mean"]).iloc[-1]))
Accuracy: 0.88315
Екстремальний градієнтний бустинг з XGBoost

Давайте потренуємось!

Екстремальний градієнтний бустинг з XGBoost

Preparing Video For Download...