0% ont trouvé ce document utile (0 vote)
67 vues2 pages

TP k-ppv : Analyse des Iris

Ce TP présente la méthode des k plus proches voisins pour la classification supervisée. Il décrit les étapes de séparation des données en ensemble d'entraînement et de test, d'estimation de l'erreur de classification et de la frontière de décision pour différentes valeurs de k. La validation croisée est également utilisée pour sélectionner la meilleure valeur de k.

Transféré par

Mariama DIOUF
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)
67 vues2 pages

TP k-ppv : Analyse des Iris

Ce TP présente la méthode des k plus proches voisins pour la classification supervisée. Il décrit les étapes de séparation des données en ensemble d'entraînement et de test, d'estimation de l'erreur de classification et de la frontière de décision pour différentes valeurs de k. La validation croisée est également utilisée pour sélectionner la meilleure valeur de k.

Transféré par

Mariama DIOUF
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

Université Paris Ouest - Nanterre La Défense

Master2 ISEFAR Data Mining - Classification


CM et TP (Groupe 1) : Ana Karina FERMIN
Tp (Groupe 2) : Mélanie Zetlaoui

TP2 : Méthode des k plus proches voisins (k-ppv)

Exercice
1. Les données

(a) Acquérir et visualiser sous R les données Iris (voir TP1)


(b) Restreindre les données aux longueurs et aux largeurs des pétales pour deux
types d’iris : versicolor et iris virginica.
irismod=subset(iris,!(Species=="setosa"))
D=irismod[,c("[Link]","[Link]","Species")]

2. Le sous-échantillon d’entrainement (Dtrain) et de test (Dtest).

p=0.75; n=dim(D)[1]; ntrain=floor(n*p); ntest= n-ntrain


ind=sample(1:n,n); ind_train=ind[1:ntrain]; ind_test=ind[(ntrain+1):n]
Dtrain=D[ind_train,] ; Dtest=D[ind_test,]

Tracer dans un même fenêtre l’ensemble de points dans le plan associées à Dtrain
et Dtest.

3. Classifieur des k-plus proches voisins, estimation de l’erreur et frontière de décision

(a) Charger la librairie class grâce à la commande library(class) puis évaluer


le classifieur, associé à la méthode 5-ppv, dans tous les points de test.

[Link] = knn(Dtrain[,c("[Link]","[Link]")],
Dtest[,c("[Link]","[Link]")],Dtrain[,"Species"], k=5)

(b) Donner la matrice de confusion et l’erreur sur l’échantillon de test à l’aide des
commandes
table(Dtest[,"Species"] , [Link])
mean(Dtest[,"Species"]!= [Link])
Combien de points ont été mal classés par votre classifieur ? Changer la valeur
de k (par exemple k=1). Répéter l’item (a), recalculer la matrice de confusion
et l’erreur sur l’échantillon de test . Que peut-on conclure ?
(c) Donner le taux d’erreur par validation croisée à l’aide du code suivant

1
K=3; k=5
[Link]=dim(K)
ind_Fold=sample(rep(1:K,ceiling(n/K)),n)
for (i in 1:K){
ind_train=which(ind_Fold!=i); ind_test=which(ind_Fold==i)
Dtrain=D[ind_train,]; Dtest=D[ind_test,]
[Link]=knn(Dtrain[,1:2],Dtest[,1:2], Dtrain[,3], k)
[Link][i]=mean(Dtest[,3]!= [Link])
}
mean([Link])

(d) Utiliser les commandes suivantes pour construire une grille pour les axes du
plan et représenter les frontières de décision données par la règle de kppv.

Length = seq(min(Dtrain[,"[Link]"]),max(Dtrain[,"[Link]"]),
length=50)
Width = seq(min(Dtrain[,"[Link]"]),max(Dtrain[,"[Link]"]),
length=50)
Grid=[Link]([Link] = Length, [Link]= Width)
[Link] = knn(Dtrain[,c("[Link]","[Link]")],
Grid[,c("[Link]","[Link]")],
Dtrain[,"Species"],k=5)

contour(Length,Width,matrix([Link](droplevels([Link])),50),
level=1.5, labels="knn", xlab="Longueur du pétale",
ylab="Largeur du pétale",main = "Frontière de décision (5-ppv)")

Qu’observe-t-on dans le graphique ? Pourquoi dans l’argument de la fonction


contour on a choisi level = 1.5 ?
Ajouter les points d’entrainement dans le graphique précédente.
Refaire un autre graphique avec les points d’entrainement et la frontière de
décision pour k=1. Comparer les deux graphiques.

4. Sélection du bon k par K-validation croisée


Fixer K=3 et créer un vecteur des valeurs de k, par exemple k = 1:20. Écrire un
boucle qui permet de calculer, pour chaque valeur de k, le taux d’erreur par K-Fold
CV. Choisir la(les) valeur(s) de k qui produise (produisent) la plus petite erreur.

5. Le meilleur classifieur parmi la famille considérée


Évaluer le classifieur, associé à la méthode k-ppv avec un des ”bons” k choissi dans
la partie précédente, dans tous les points de test. Tracer la frontière de décision et
l’ensemble de points d’entrainement.

Vous aimerez peut-être aussi