CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Créez une DMatrix nommée churn_dmatrix à partir de churn_data en utilisant xgb.DMatrix(). Les caractéristiques se trouvent dans X et les étiquettes dans y.
  • Effectuez une validation croisée à 3 volets en appelant xgb.cv(). dtrain est votre churn_dmatrix, params est votre dictionnaire de paramètres, nfold est le nombre de volets de validation croisée (3), num_boost_round est le nombre d'arbres à construire (5), metrics est 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]))
Modifier et exécuter le code