M1 IAD UE RFIDEC TD N◦ 10 19 janvier 2006 Exercice 1 Méthode des k plus proches voisins (k − P P V ) Les objets à classer sont de dimension d = 2 : x = (x 1 , x2 ). Il y a deux classes, C1 et C2 et on connait les classes de 4 objets : x1 = (2,1), x2 = (1,3) ∈ C1 ; x3 = (2,5), x4 = (4,3) ∈ C2 . 1◦ ) Apprentissage supervisé par la méthode k − P P V avec k = 1 à partir de la base formée par ces 4 objets : Déterminer graphiquement pour chacun d’eux la région du plan où il est l’objet le plus proche parmi les 4 (pour la distance euclidienne). En déduire les régions et frontières de décision. 2◦ ) Apprentissage supervisé par la méthode k − P P V avec k = 3 à partir de la base formée par ces 4 objets : Déterminer graphiquement pour chacun d’eux la région du plan où il est l’objet le plus éloigné parmi les 4 (pour la distance euclidienne). En déduire les régions et frontières de décision. 3◦ ) Apprentissage itératif non-supervisé par l’algorithme k − P P V avec k = 3 à partir de la base formée par ces 4 objets : Algorithme des k-PPV Entrée : xj , j = 1, · · · ,n + M . Initialisation Dictionnaire D1 = {x1 , · · · ,xn }, m ← 1 Tant que m ≤ M Répéter Déterminer les k plus proches voisins de x n+m dans Dm ; attribuer à xn+m la classe majoritaire m←m+1 Sortie : classification des xj , j = n + 1, · · · ,n + M i) Comment sont classés les objets x 5 = (2,2) et x6 = (2,4) s’ils sont pris dans cet ordre? ii) Comment sont-ils classés s’ils sont pris dans l’ordre opposé? Conclusion? 1 Exercice 2 Quantification vectorielle On veut regrouper en classes possédant chacune un prototype des objets de dimension d = 2 : x = (x1 , x2 ) ; ce sont : (1,3), (−2,2), (−1,2), (−3,2), (1,5), (1,4), (2,5), (2,6). 1◦ ) Le nombre de classes, K, n’est pas imposé a priori. Utiliser l’algorithme à seuil suivant pour sélectionner un dictionnaire de prototypes initiaux dont la taille sera elle-même une sortie de l’algorithme. d(x,y) est la distance euclidienne. On prendra θ = 2 Algorithme à seuil Entrée : X = {xj , j = 1, · · · ,n}. Seuil θ > 0 Initialisation Dictionnaire D1 = {x1 }, j ← 2 Tant que j ≤ n Répéter Si ∃y ∈ Dj−1 , d(xj ,y) ≤ θ Alors Dj ← Dj−1 Sinon Dj ← Dj−1 ∪ {xj } Sortie : un dictionnaire de prototypes D = D n de taille K =| D | 2◦ ) i) Faire évoluer les prototypes du dictionnaire trouvé au 1 ◦ ) à l’aide de l’algorithme de K-moyennes suivant : Algorithme de K-moyennes Entrée : K prototypes D = {y1 , · · · ,yK } ; X = {xj , j = 1, · · · ,n}. Initialisation j ← 1 , nk =← 1 (∀1 ≤ k ≤ K) Tant que j ≤ n Répéter k ← arg min1≤l≤K d(xj ,yl ) Affecter xj à la classe Ck (règle de sélection) n .y +x yk ← knkk+1 j (règle d’adaptation) nk ← n k + 1 Sortie : un regroupement en K classes et les prototypes de chaque classe (leurs centres de gravité), D. N.B. Cet algorithme est aussi connu sous d’autres noms, dont algorithme d’agrégation autour de centres mobiles. ii) Ici, on peut retirer D de l’ensemble d’apprentissage X avant d’appliquer l’algorithme. Le résultat final en dépend-il? Faut-il retirer D? iii) Que se passe-t-il si l’on continue à faire tourner l’algorithme à partir des nouveaux prototypes? Quel critère d’arrêt préconisez-vous? 2 3◦ ) i) Faire évoluer les prototypes du dictionnaire trouvé au 2 ◦ )ii) à l’aide de l’algorithme de Linde-Buzo-Gray (LBG) suivant : Algorithme LBG Entrée : K prototypes D = {y1 , · · · ,yK }, centres de gravité des K ensembles de la partition de X = {xj , j = 1, · · · ,n}. Un vecteur z Tant que critère d’arrêt non-satisfait Répéter Doubler le nombre de prototypes en remplaçant chaque prototype y par deux autre y + z et y−z Affecter chaque exemple xj à la classe du nouveau prototype dont il est le plus proche Adapter les prototypes en les remplaçant par les centres de gravité de leurs classes. Sortie : un regroupement en K r classes et les prototypes de chaque classe (leurs centres de gravité). On prendra r = 2 et z = (1,1) ii) Comment peut-on utiliser des méthodes de QV pour réaliser des tâches de discrimination? 3