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
Instructions de l’exercice
- Importez
xgboostsous l'aliasxgb. - Créez les ensembles d'entraînement et de test de façon à utiliser 20 % des données pour le test. Utilisez un
random_statede123. - Instanciez un
XGBoostClassifiersous le nomxg_clavecxgb.XGBClassifier(). Spécifiezn_estimatorsà10estimateurs et unobjectivede'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))