Exercice 2
Quantification vectorielle
On veut regrouper en classes poss´edant 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´e a priori. Utiliser l’algorithme `a seuil suivant pour
s´electionner un dictionnaire de prototypes initiaux dont la taille sera elle-mˆeme une sortie de
l’algorithme.
d(x,y) est la distance euclidienne. On prendra θ= 2
Algorithme `a seuil
Entr´ee :X={xj, j = 1,··· ,n}. Seuil θ > 0
Initialisation Dictionnaire D1={x1},j←2
Tant que j≤nR´ep´eter
Si ∃y∈Dj−1, d(xj,y)≤θ
Alors Dj←Dj−1
Sinon Dj←Dj−1∪ {xj}
Sortie : un dictionnaire de prototypes D=Dnde taille K=|D|
2◦) i) Faire ´evoluer les prototypes du dictionnaire trouv´e au 1◦) `a l’aide de l’algorithme de
K-moyennes suivant :
Algorithme de K-moyennes
Entr´ee :Kprototypes D={y1,··· ,yK};X={xj, j = 1,··· ,n}.
Initialisation j←1 , nk=←1 (∀1≤k≤K)
Tant que j≤nR´ep´eter
k←arg min1≤l≤Kd(xj,yl)
Affecter xj`a la classe Ck(r`egle de s´election)
yk←nk.yk+xj
nk+1 (r`egle d’adaptation)
nk←nk+ 1
Sortie : un regroupement en Kclasses et les prototypes de chaque classe (leurs centres de
gravit´e), D.
N.B. Cet algorithme est aussi connu sous d’autres noms, dont algorithme d’agr´egation autour
de centres mobiles.
ii) Ici, on peut retirer Dde l’ensemble d’apprentissage Xavant d’appliquer l’algorithme. Le
r´esultat final en d´epend-il? Faut-il retirer D?
iii) Que se passe-t-il si l’on continue `a faire tourner l’algorithme `a partir des nouveaux proto-
types?
Quel crit`ere d’arrˆet pr´econisez-vous?
2