Che cos'è il Boosting?

Extreme Gradient Boosting con XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Panoramica del Boosting

  • Non è un algoritmo di machine learning specifico
  • Concetto applicabile a un insieme di modelli di machine learning
    • "Meta-algoritmo"
  • Meta-algoritmo di ensemble che trasforma molti weak learner in un strong learner
Extreme Gradient Boosting con XGBoost

Weak learner e strong learner

  • Weak learner: algoritmo di ML leggermente meglio del caso
    • Esempio: albero decisionale con predizioni di poco superiori al 50%
  • Il boosting converte un insieme di weak learner in un strong learner
  • Strong learner: qualunque algoritmo regolabile per ottenere buone prestazioni
Extreme Gradient Boosting con XGBoost

Come si realizza il boosting

  • Apprendere iterativamente una serie di modelli deboli su sottoinsiemi dei dati
  • Pesare ogni predizione debole in base alle prestazioni del rispettivo weak learner
  • Combinare le predizioni pesate per ottenere una singola predizione pesata
  • ... molto migliore delle singole predizioni!
Extreme Gradient Boosting con XGBoost

Esempio di Boosting

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

Valutare il modello con la cross-validation

  • Cross-validation: metodo robusto per stimare le prestazioni di un modello su dati non visti
  • Genera molte suddivisioni train/test non sovrapposte sui dati di training
  • Riporta la media delle prestazioni sul test set su tutte le suddivisioni
Extreme Gradient Boosting con XGBoost

Cross-validation in XGBoost: esempio

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

Esercitiamoci!

Extreme Gradient Boosting con XGBoost

Preparing Video For Download...