Projet 2 : Algorithme des k-moyennes

publicité
Projet 2 : Algorithme des k-moyennes
Vous devez rendre ce travail pour le 20 avril 2011, sous forme d’un rapport manuscrit
retraçant l’étude décrite ci-dessous. Ce rapport doit comporter l’analyse demandée des
fichiers de données, et les figures correspondantes.
1
Principe de l’algorithme
L’algorithme des k-moyennes, plus communément appelé k-means, est une méthode
couramment utilisée en analyse de données. Elle permet de partitionner une collection
d’individus en K classes, K étant un nombre fixé au préalable par l’utilisateur. On
supposera dans la suite que les individus xℓ , ℓ = 1, . . . , N , sont des vecteurs de IRq .
L’algorithme des k-moyennes se déroule de la façon suivante :
1. Choisir k individus au hasard. On note m1 , . . . , mK ces derniers. Ils constituent
les représentants des K classes C1 , . . . , CK , supposées vides à l’initialisation.
2. Affecter chaque individu à l’une des classes, notée k0 , en fonction du représentant
le plus proche :
k0 = arg min d(xℓ , mk )
1≤k≤K
où d(· , ·) est une métrique à définir soigneusement. Il peut s’agir par exemple de la
distance de Mahalanobis, définie par
1
d(xℓ , mk ) = [(xℓ − mk )⊤ Σ−1 (xℓ − mk )] 2
où Σ est la matrice de covariance des données. On choisira Σ = I dans la suite,
excepté dans la dernière question de l’énoncé.
3. Calculer les nouveaux représentants de chaque classe. Ils peuvent être définis comme
étant le barycentre des éléments de chaque classe :
1 X
mk =
xℓ
(1)
|Ck |
ℓ∈Ck
4. Retourner à l’étape 2 si la condition d’arrêt, à définir, n’est pas satisfaite.
La partition obtenue par l’algorithme des k-moyennes dépend des représentants de classe
initialement choisis. De façon à s’affranchir en partie de cette dépendance, on exécute
l’algorithme des k-moyennes, k étant fixé, avec des configurations initiales différentes, et
on retient la meilleure partition. La qualité de la partition peut être mesurée par diverses
quantités, par exemple :
D=
K X
X
(xℓ − mk )⊤ Σ−1 (xℓ − mk )
i=1 xℓ ∈Ck
où Σ est la matrice de covariance des données pour ce qui concerne la distance de Mahalanobis. Cette quantité peut être utilisée pour définir le critère d’arrêt de l’algorithme.
1
2
Travail à effectuer
Le but de ce travail est de programmer et d’appliquer l’algorithme des k-moyennes sur
différents jeux de données. Il est important d’apporter le plus grand soin à l’interprétation
des résultats et du comportement de l’algorithme en fonction des paramètres que sont le
nombre k de classes, la configuration initiale, et la métrique choisie.
On dispose de 3 ensembles de données de 1000 individus chacun dans IR2 (data1.txt,
data2.txt, data3.txt).
1. Visualiser ces données et évaluer qualitativement la répartition des points.
2. Appliquer l’algorithme des k-moyennes avec différentes valeurs de k. Evaluer de
façon quantitative la qualité des partitions obtenues en fonction de k, et conclure.
L’algorithme des k-moyennes peut être utilisé pour effectuer une segmentation
d’images. Chaque pixel de l’image peut être caractérisé par sa couleur, codée en RGB.
L’image à segmenter peut donc être représentée comme un ensemble d’individus de IR3 ,
comme illustré sur la figure ci-dessous.
1. Appliquer l’algorithme des k-moyennes sur l’image grenouille.jpg
2. Etudier l’influence des représentants initiaux de classes sur le résultat final.
3. Etudier l’influence de k sur le résultat.
Pour améliorer le résultat, on se propose de prendre conjointement en compte la couleur
et la position de chaque pixel dans l’image. Les individus sont donc représentés par leur
couleur codée en RGB, et leur indice de ligne et colonne. Appliquer l’algorithme des kmoyennes afin de segmenter l’image à partir de cette nouvelle représentation. Reprendre
les questions ci-dessus avec cette nouvelle définition des individus.
R
B
G
Figure 1 – Codage RGB pour la segmentation par l’algorithme des k-moyennes
2
Téléchargement