Mesurer la précision
Vous allez vous entraîner à utiliser l’API d’apprentissage de XGBoost via ses fonctionnalités intégrées de validation croisée. Comme Sergey l’a expliqué dans la vidéo précédente, XGBoost doit ses excellentes performances et gains d’efficacité à sa structure de données optimisée, appelée DMatrix.
Dans l’exercice précédent, les jeux de données d’entrée ont été convertis à la volée en DMatrix, mais lorsque vous utilisez l’objet cv de xgboost, vous devez d’abord convertir explicitement vos données en DMatrix. C’est ce que vous allez faire ici avant d’exécuter la validation croisée sur churn_data.
Cet exercice fait partie du cours
Extreme Gradient Boosting avec XGBoost
Instructions
- Créez une
DMatrixappeléechurn_dmatrixà partir dechurn_dataen utilisantxgb.DMatrix(). Les variables explicatives sont dansXet les étiquettes dansy. - Effectuez une validation croisée en 3 plis en appelant
xgb.cv().dtrainest votrechurn_dmatrix,paramsest votre dictionnaire de paramètres,nfoldest le nombre de plis de validation croisée (3),num_boost_roundest le nombre d’arbres à construire (5),metricsest la métrique que vous souhaitez calculer (ici"error", que nous convertirons en précision).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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]))