Machine learning TP 4 2022/2023
Classification et évaluation
Objectif du TP 4 :
• Appliquer l’algorithme KNN en tant que technique transductive.
• Appliquer les algorithmes arbre de décision, Naive Bayes, SVM et la régression
logistique.
• Evaluation des modèles de classification : Recall, precision, Accuracy, F1 mesure et
matrice de confusion.
• Visualisaation avec yeloowbrick.
• Traiter le problème de déséquilibre des données.
Travail à faire : Nous allons appliquer plusieurs algorithmes de Machine learning supervisé
pour des objectifs de classification sur le dataset diabètes. La deuxième étape consiste à
évaluer ces modèles.
A. Répartition en données d’apprentissage et données de test
Dans toutes les techniques de prédiction, il est obligatoire de répartir tout d’abord la dataset
en deux parties : la première pour la création du model ou d'apprentissage et la deuxième
pour le test.
1. Charger les bibliothèques essentielles :
2. Charger votre dataset diabets.csv dans la dataframe datadiabetes :
data_diabetes = pd.read_csv('diabetes.csv ', sep=',',index_col=None, header=0)
3. Détecter la variable à expliquer Y (target) et les variables explicatives X dans votre
dataset.
4. Répartir vos données en X_train, Y_train et X_test et Y_test.
• from sklearn.model_selection import train_test_split
Pr. N. Daoudi
Machine learning TP 4 2022/2023
• X_train, X_test, Y_train, Y_test = train_test_split(X,Y,
test_size=0.3)
B. Classification par les k-plus proches voisins : KNN
La documentation Scikit learn sur les k-NN est disponible sur http://scikit-learn.org
stable/modules /neighbors.html
1. Entrainer un classifieur des k plus proches voisins (avec k = 15) sur ce jeu de
donné (Le choix du paramètre k est parmi les principales difficultés de K-NN) :
2. Pour évaluer le modèle, il faut l’utiliser tout d’abord prédire lla target pour X_test :
Y_predKNN=model_KNN.predict(X_test)
3. Evaluation du modèle :
3.1 La matrice de confusion : from sklearn.metrics import confusion_matrix
3.2 Calculer les différentes mesures de performances du classifieur crée et en donner
l’interprétation.
4. Utiliser classification_report. Qu’est-ce que vous avez obtenu ?
5. Afficher la courbe ROC. Commenter.
Pr. N. Daoudi
Machine learning TP 4 2022/2023
6. Proposer une façon pour choisir la meilleure valeur de K.
C. Visualisation avec yellowbrick
Yellowbrick est une bibliothèque de visualisation qui facilite la lecture des résultats de
l'évaluation des modèles et leur comparaison.
• Elle permet l’affichage du Rapport de classification, Matrice de confusion, la courbre
ROCAUC, les courbes de précision-rappel pour différents seuils de probabilité. Elle
permet également de detecter visuellement l'équilibre des classes, Erreur de
prédiction de classe (alternative à la matrice de confusion qui montre à la fois le
support et la différence entre les classes réelles et prédites.) et Seuil de discrimination
(affiche la précision, le rappel, f1 et le taux de file d'attente (queue rate) sur tous les
seuils pour les classificateurs binaires qui utilisent une probabilité ou un score de
discrimination.)
1. Utiliser yellowbrick pour afficher le rapport de cassification :
Pr. N. Daoudi
Machine learning TP 4 2022/2023
2. A quoi peut servir ClassePredictionError ?
3. Afficher la courbe de ROC avec yellowbrick et intérpréter le résultat.
D. Classification : Arbre de décision
La classification en apprentissage automatique peut se faire par l’algorithme Arbre de décision
disponible sous Scikit learn via DecisionTreeClassifier :
from sklearn.tree import DecisionTreeClassifier.
Cet algorithme dispose de plusieurs paramètres, notamment :
• min_samples_split qui indique qu’un sommet ne peut être segmenté s’il est composé
de moins de min_samples_split individus.
• min_samples_leaf qui indique qu’une segmentation n’est validée que si et seulement
si les feuilles générées comportent tous au moins min_samples_leaf observations.
• max_depth : la profondeur maximale de l’arbre.
• Criterion : c’est le critère qui permet de mesurer la qualité d'un split. Les critères pris
en charge sont « gini » pour l'impureté de Gini et « entropie » pour le gain
d'informations. par défaut="gini".
1. Entrainer un classifieur arbre de décision sur le même dataset.
2. Evaluer le modèle selon les différentes mesures de performances du classifieur
crée. Interpréter vos résultats
3. Utiliser classification_report.
4. Visualiser l’arbre obtenu :
5. Comparer le modèle KNN et le modèle arbre de décision.
Pr. N. Daoudi
Machine learning TP 4 2022/2023
E. Création d’autres modèles :
1. Refaire les questions de 1 à 4 pour les algorithmes Naive bayes, SVM, Modèle
régression logistique.
2. Proposer une manière pour comparer l’ensemble des modèles.
F. Données déséquilibrées : imbalanced data
1. Oversampling
1.1 Utiliser SMOTE comme technique oversampling pour équilibrer les données.
1.2 Reprendre le modèle SVM.
1.3 Evaluer les modèle.
2. Utilisation du paramétre class_weight
2.1 Reprendre le modèle SVM en précisant class_weight
2.2 Reprendre le modèle et l’évaluer.
2.3 comparer les résultats.
3. Undersampling
3.1 Reprendre le modèle SVM.
1.3 Evaluer les modèle.
4. Comparer les résultats.
Pr. N. Daoudi