Vad är boosting?

Extreme Gradient Boosting med XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Boosting – översikt

  • Inte en specifik maskininlärningsalgoritm
  • Ett koncept som kan tillämpas på en uppsättning maskininlärningsmodeller
    • "Meta-algoritm"
  • En ensemble-metaalgoritm som omvandlar många svaga inlärare till en stark inlärare
Extreme Gradient Boosting med XGBoost

Svaga och starka inlärare

  • Svag inlärare: en ML-algoritm som presterar något bättre än slumpen
    • Exempel: ett beslutsträd vars prediktioner är något bättre än 50 %
  • Boosting omvandlar en samling svaga inlärare till en stark inlärare
  • Stark inlärare: en algoritm som kan finjusteras för att uppnå god prestanda
Extreme Gradient Boosting med XGBoost

Så fungerar boosting

  • Tränar iterativt svaga modeller på delmängder av data
  • Viktar varje svag prediktion utifrån den svaga inlärarens prestanda
  • Kombinerar de viktade prediktion till en enda viktad prediktion
  • ... som är mycket bättre än de individuella prediktion!
Extreme Gradient Boosting med XGBoost

Boosting – exempel

1 https://xgboost.readthedocs.io/en/latest/model.html
Extreme Gradient Boosting med XGBoost

Modellutvärdering med korsvalidering

  • Korsvalidering: en robust metod för att skatta en modells prestanda på osedd data
  • Genererar många icke-överlappande tränings- och testuppdelningar av träningsdata
  • Rapporterar den genomsnittliga testprestandan över alla datauppdelningar
Extreme Gradient Boosting med XGBoost

Korsvalidering i XGBoost – exempel

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
Extreme Gradient Boosting med XGBoost

Nu kör vi en övning!

Extreme Gradient Boosting med XGBoost

Preparing Video For Download...