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