0% ont trouvé ce document utile (0 vote)
2 vues3 pages

TP: Classification Supervisée Des Fleurs IRIS: Objectifs Pédagogiques

Ce TP sur la classification supervisée des fleurs IRIS permet aux étudiants d'apprendre à explorer, visualiser et appliquer différents algorithmes de classification sur un dataset de 150 échantillons de fleurs. Les étudiants utiliseront des bibliothèques Python pour charger et normaliser les données, puis évalueront les performances des modèles KNN, SVM et arbre de décision. Enfin, ils compareront les modèles et répondront à des questions sur la normalisation et les caractéristiques discriminantes.

Transféré par

Nouha Jabberi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues3 pages

TP: Classification Supervisée Des Fleurs IRIS: Objectifs Pédagogiques

Ce TP sur la classification supervisée des fleurs IRIS permet aux étudiants d'apprendre à explorer, visualiser et appliquer différents algorithmes de classification sur un dataset de 150 échantillons de fleurs. Les étudiants utiliseront des bibliothèques Python pour charger et normaliser les données, puis évalueront les performances des modèles KNN, SVM et arbre de décision. Enfin, ils compareront les modèles et répondront à des questions sur la normalisation et les caractéristiques discriminantes.

Transféré par

Nouha Jabberi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP : Classification supervisée des fleurs IRIS

Machine Learning

Objectifs pédagogiques
À l’issue de ce TP, l’étudiant sera capable de :
— Comprendre un problème de classification supervisée
— Explorer et visualiser un jeu de données
— Appliquer plusieurs algorithmes de classification
— Évaluer et comparer les performances des modèles

1 Présentation du dataset
Le TP utilise le dataset :contentReference[oaicite :0]index=0, qui contient 150 échan-
tillons répartis en trois classes :
— Iris Setosa
— Iris Versicolor
— Iris Virginica
Chaque fleur est décrite par quatre attributs :
— Longueur du sépale
— Largeur du sépale
— Longueur du pétale
— Largeur du pétale

2 Chargement des bibliothèques

1 import numpy as np
2 import pandas as pd
3 import matplotlib . pyplot as plt
4 import seaborn as sns
5
6 from sklearn . datasets import load_iris
7 from sklearn . model_selection import train_test_split
8 from sklearn . preprocessing import StandardScaler
9 from sklearn . metrics import accuracy_score , confusion_matrix ,
classification_report
10
11 from sklearn . neighbors import K N e i g h b o r s C l a s s i f i er
12 from sklearn . svm import SVC
13 from sklearn . tree import D e c i s i o n T r e e C l a s s i f i e r

3 Chargement et exploration des données

1
1 iris = load_iris ()
2 X = iris . data
3 y = iris . target
4

5 df = pd . DataFrame (X , columns = iris . feature_names )


6 df [ ’ classe ’] = y
7 df . head ()

Visualisation

1 sns . pairplot ( df , hue = " classe " )


2 plt . show ()

Question : Quelles caractéristiques semblent les plus discriminantes ?

4 Séparation des données

1 X_train , X_test , y_train , y_test = train_test_split (


2 X , y , test_size =0.3 , random_state =42
3 )

5 Normalisation

1 scaler = StandardScaler ()
2 X_train = scaler . fit_transform ( X_train )
3 X_test = scaler . transform ( X_test )

6 Classification
6.1 K plus proches voisins (KNN)

1 knn = KN e i g h b o r s C l a s s i f i e r ( n_neighbors =5)


2 knn . fit ( X_train , y_train )
3
4 y_pred_knn = knn . predict ( X_test )
5 print ( " Accuracy ␣ KNN ␣ : " , accuracy_score ( y_test , y_pred_knn ) )

6.2 Support Vector Machine (SVM)

1 svm = SVC ( kernel = ’ rbf ’)


2 svm . fit ( X_train , y_train )
3

4 y_pred_svm = svm . predict ( X_test )


5 print ( " Accuracy ␣ SVM ␣ : " , accuracy_score ( y_test , y_pred_svm ) )

2
6.3 Arbre de décision

1 dt = D e c i s i o n T r e e C l a s s i f i e r ()
2 dt . fit ( X_train , y_train )
3
4 y_pred_dt = dt . predict ( X_test )
5 print ( " Accuracy ␣ Decision ␣ Tree ␣ : " , accuracy_score ( y_test , y_pred_dt ) )

7 Évaluation

1 print ( c l a s s i f i c a t i o n _ r e p o r t ( y_test , y_pred_svm ) )

Matrice de confusion

1 cm = confusion_matrix ( y_test , y_pred_svm )


2 sns . heatmap ( cm , annot = True , fmt = " d " )
3 plt . xlabel ( " P r d i t " )
4 plt . ylabel ( " R e l " )
5 plt . show ()

8 Comparaison des modèles


Modèle Accuracy
KNN
SVM
Arbre de décision

9 Questions
1. Pourquoi la normalisation est-elle importante ?
2. Quel est l’effet du paramètre k dans KNN ?
3. Pourquoi la classe Setosa est-elle plus facile à classifier ?
4. Quel modèle recommanderiez-vous et pourquoi ?

10 Travail demandé
— Tester d’autres valeurs de k
— Ajouter une régression logistique
— Tester Random Forest
— Rédiger un mini-rapport (1 page)

Vous aimerez peut-être aussi