Wat is Boosting?

Extreme Gradient Boosting met XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Boosting in vogelvlucht

  • Geen specifiek Machine Learning-algoritme
  • Concept dat je kunt toepassen op een set Machine Learning-modellen
    • "Meta-algoritme"
  • Ensemble-meta-algoritme dat veel zwakke learners omzet in één sterke learner
Extreme Gradient Boosting met XGBoost

Zwakke en sterke learners

  • Zwakke learner: ML-algoritme dat net beter is dan toeval
    • Voorbeeld: beslisboom met voorspellingen net boven 50%
  • Boosting zet een verzameling zwakke learners om in één sterke learner
  • Sterke learner: elk algoritme dat je kunt tunen voor goede prestaties
Extreme Gradient Boosting met XGBoost

Hoe boosting werkt

  • Iteratief een set zwakke modellen leren op subsets van de data
  • Elke zwakke voorspelling wegen op basis van de prestatie van die learner
  • De gewogen voorspellingen combineren tot één gewogen voorspelling
  • ... die veel beter is dan de losse voorspellingen!
Extreme Gradient Boosting met XGBoost

Boosting-voorbeeld

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

Modelevaluatie met cross-validation

  • Cross-validation: robuuste methode om modelprestatie op onbekende data te schatten
  • Maakt veel niet-overlappende train/test-splits op trainingsdata
  • Rapporteert de gemiddelde testprestatie over alle splits
Extreme Gradient Boosting met XGBoost

Cross-validation in XGBoost-voorbeeld

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 met XGBoost

Laten we oefenen!

Extreme Gradient Boosting met XGBoost

Preparing Video For Download...