Mesurer la justesse
Vous allez maintenant vous exercer à utiliser l'API d'apprentissage de XGBoost grâce à ses fonctions intégrées de validation croisée. Comme Sergey l'a expliqué dans la vidéo précédente, XGBoost doit sa performance et son efficacité à sa structure de données optimisée pour les jeux de données, appelée DMatrix.
Dans l'exercice précédent, les jeux de données d'entrée étaient convertis en DMatrix à la volée, mais lorsque vous utilisez l'objet cv de xgboost, vous devez d'abord convertir explicitement vos données en DMatrix. C'est donc ce que vous ferez ici avant d'exécuter la validation croisée sur churn_data.
Cette activité fait partie du cours
Amorçage de gradient avancé avec XGBoost
Instructions de l’exercice
- Créez une
DMatrixnomméechurn_dmatrixà partir dechurn_dataen utilisantxgb.DMatrix(). Les caractéristiques se trouvent dansXet les étiquettes dansy. - Effectuez une validation croisée à 3 volets en appelant
xgb.cv().dtrainest votrechurn_dmatrix,paramsest votre dictionnaire de paramètres,nfoldest le nombre de volets de validation croisée (3),num_boost_roundest le nombre d'arbres à construire (5),metricsest la mesure que vous voulez calculer (ce sera"error", que nous convertirons en justesse).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]
# Create the DMatrix from X and y: churn_dmatrix
churn_dmatrix = ____(data=____, label=____)
# Create the parameter dictionary: params
params = {"objective":"reg:logistic", "max_depth":3}
# Perform cross-validation: cv_results
cv_results = ____(dtrain=____, params=____,
nfold=____, num_boost_round=____,
metrics="____", as_pandas=____, seed=123)
# Print cv_results
print(cv_results)
# Print the accuracy
print(((1-cv_results["test-error-mean"]).iloc[-1]))