Qu'est-ce que le boosting?

Amorçage de gradient avancé avec XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Aperçu du boosting

  • Pas un algorithme précis de Machine Learning
  • Concept applicable à un ensemble de modèles de Machine Learning
    • « Méta‑algorithme »
  • Méta‑algorithme d'ensembles qui transforme plusieurs apprenants faibles en un apprenant fort
Amorçage de gradient avancé avec XGBoost

Apprenants faibles et forts

  • Apprenant faible : algorithme de ML légèrement meilleur que le hasard
    • Exemple : arbre de décision dont les prédictions dépassent légèrement 50 %
  • Le boosting convertit une collection d'apprenants faibles en un apprenant fort
  • Apprenant fort : tout algorithme qu'on peut régler pour obtenir de bonnes performances
Amorçage de gradient avancé avec XGBoost

Comment réaliser le boosting

  • Apprentissage itératif d'un ensemble de modèles faibles sur des sous‑ensembles de données
  • Pondérer chaque prédiction faible selon la performance de son apprenant
  • Combiner les prédictions pondérées pour obtenir une seule prédiction pondérée
  • … nettement meilleure que chaque prédiction prise isolément !
Amorçage de gradient avancé avec XGBoost

Exemple de boosting

1 https://xgboost.readthedocs.io/en/latest/model.html
Amorçage de gradient avancé avec XGBoost

Évaluer un modèle par validation croisée

  • Validation croisée : méthode robuste pour estimer la performance d'un modèle sur des données inédites
  • Génère de multiples divisions entraînement/essai non chevauchantes sur les données d'entraînement
  • Indique la performance moyenne sur l'ensemble des divisions
Amorçage de gradient avancé avec XGBoost

Validation croisée dans XGBoost : exemple

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
Amorçage de gradient avancé avec XGBoost

Passons à la pratique !

Amorçage de gradient avancé avec XGBoost

Preparing Video For Download...