CommencezCommencez gratuitement

XGBoost : entraînement et prédiction

C'est le moment de créer votre premier modèle XGBoost! Comme Sergey l'a montré dans la vidéo, vous pouvez utiliser le paradigme scikit-learn .fit() / .predict() que vous connaissez déjà pour construire vos modèles XGBoost, puisque la bibliothèque xgboost offre une API compatible avec scikit-learn!

Ici, vous allez travailler avec des données d'attrition (churn). Cet ensemble contient des données fictives provenant d'une appli de covoiturage, avec les comportements des utilisatrices et utilisateurs durant leur premier mois d'utilisation dans un ensemble de villes fictives, ainsi que l'information sur l'utilisation du service 5 mois après l'inscription. Il a été préchargé pour vous dans un DataFrame nommé churn_data — explorez-le dans le Shell!

Votre objectif est d'utiliser les données du premier mois pour prédire si les personnes utilisatrices de l'appli continueront d'utiliser le service au cap des 5 mois. Il s'agit d'une configuration typique pour un problème de prédiction d'attrition. Pour ce faire, vous allez diviser les données en ensembles d'entraînement et de test, ajuster un petit modèle xgboost sur l'ensemble d'entraînement, puis évaluer sa performance sur l'ensemble de test en calculant sa précision.

pandas et numpy ont été importés sous les alias pd et np, et train_test_split a été importé de sklearn.model_selection. De plus, les tableaux pour les prédicteurs et la cible ont été créés sous les noms X et y.

Cette activité fait partie du cours

Amorçage de gradient avancé avec XGBoost

Voir le cours

Instructions de l’exercice

  • Importez xgboost sous l'alias xgb.
  • Créez les ensembles d'entraînement et de test de façon à utiliser 20 % des données pour le test. Utilisez un random_state de 123.
  • Instanciez un XGBoostClassifier sous le nom xg_cl avec xgb.XGBClassifier(). Spécifiez n_estimators à 10 estimateurs et un objective de 'binary:logistic'. Ne vous inquiétez pas de la signification pour l'instant; vous verrez ces paramètres plus loin dans le cours.
  • Ajustez xg_cl à l'ensemble d'entraînement (X_train, y_train) en utilisant la méthode .fit().
  • Prédisez les étiquettes de l'ensemble de test (X_test) avec la méthode .predict() et cliquez sur "Soumettre la réponse" pour afficher la précision.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Import xgboost
____

# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]

# Create the training and test sets
X_train, X_test, y_train, y_test= ____(____, ____, test_size=____, random_state=123)

# Instantiate the XGBClassifier: xg_cl
xg_cl = ____.____(____='____', ____=____, seed=123)

# Fit the classifier to the training set
____

# Predict the labels of the test set: preds
preds = ____

# Compute the accuracy: accuracy
accuracy = float(np.sum(preds==y_test))/y_test.shape[0]
print("accuracy: %f" % (accuracy))
Modifier et exécuter le code