TP classification
Objectif du TP
L’objectif de ce TP est d’établir un modèle de classification reliant, de manière optimisée, une
variable de sortie binaire y à plusieurs variables quantitatives ou qualitatives X1,…, Xp. Ce
modèle permet par la suite la prédiction de y en fonction de données Xk. Dans notre cas, le
modèle cherche à prédire si un client va quitter la banque à partir d’un ensemble de variables
indépendantes. La base de données est Churn_Modelling.
Manipulation
1. Lancer l’environnement de développement JUPYTER intégré dans Anaconda. Créer
un nouveau projet FILE/ NEW/NOTEBOOK et enregistrer le sous le nom « atelier
[Link] ».
2. Importer les librairies pandas, numPy [Link], Seaborn pour la visualisation
des données et warnings. Ajouter [Link]('ignore') après l’importation
de la bibliothèque warnings pour supprimer tous les avertissements.
3. Importer le fichier « Churn_Modelling» dans un objet que vous nommerez «dataset».
4. Afficher :
a) Les premières lignes du DataFrame
b) Le nombre d'observations et de variables
c) Le type des variables
d) Les statistiques descriptives
e) La description des variables catégoriques
5. Supprimer les variables inutiles de la base de données.
6. Vérifier si la base est équilibrée.
7. Vérifier s’il y a des valeurs manquantes.
8. Vérifier s’il y a des valeurs aberrantes (outliers) en utilisant les box-plots.
9. Vérifier la distribution des variables numériques.
10. Encoder les variables catégoriques.
11. Diviser l’ensemble de données en un ensemble d'apprentissage et un ensemble de test
(20% pour le test et 80% pour l’entrainement).
12. Importer le modèle de régression logistique, entraîner le modèle et afficher les
paramètres optimaux.
Page 1|3
13. Utiliser le modèle obtenu pour prédire les valeurs de nos données de test. Comparer
alors les valeurs prédites aux valeurs réelles.
14. Considérer la première ligne des données de test, calculer sa sortie par l’équation du
modèle optimisé et vérifier la valeur obtenue avec celle prédite.
15. Importer la matrice de confusion et les métriques et afficher les résultats d’évaluation
du modèle. Interpréter.
16. Importer le modèle KNN et entraîner le modèle.
17. Utiliser le modèle obtenu pour prédire les valeurs de nos données de test. Comparer
alors les valeurs prédites aux valeurs réelles.
18. Utiliser la méthode de validation croisée pour trouver la meilleure valeur de K.
19. Importer la matrice de confusion et les métriques et afficher les résultats d’évaluation
du modèle. Interpréter.
20. Tracer les courbes ROC des deux modèles. Conclure.
Annexe
fprk, tprk, thrk = metrics.roc_curve(y_test,y_pred_knn_o)
fpr, tpr, thr = metrics.roc_curve(y_test,y_pred_lr)
auc = [Link](fpr,tpr)
auck = [Link](fprk,tprk)
[Link](fpr,tpr,'-',lw=2,label='AUC LR =%.2f' %auc)
[Link](fprk,tprk,'-',lw=2,label='AUC knn_o =%.2f' %auck)
[Link]()
[Link]()
*******************************************************
from sklearn.model_selection import GridSearchCV
parameters = {'n_neighbors' : [1,3,5,7,9,11,13,15]}
model = KNeighborsClassifier()
clf = GridSearchCV(model, parameters, scoring = 'accuracy', cv = 5)
grille = [Link](X_train_sc, y_train)
Page 2|3
print(grille.best_params_)
print(grille.best_score_)
[Link](X_test_sc)
lr.predict_proba(X_test_sc)
*******************************************************
fpr, tpr, thr = metrics.roc_curve(y_test,y_pred_lr)
print(fpr, tpr, thr)
[Link](fpr,tpr)
fpr1, tpr1, thr1 = metrics.roc_curve(y_test,y_test_pred_prob)
Page 3|3