Vous êtes sur la page 1sur 19

SOMMAIRE

I. Introduction ....................................................................................................................2
II. Contexte .........................................................................................................................2
a. Qu’est-ce que la classification automatique ? ..............................................................2
b. Quelles données ?........................................................................................................3
c. Qu’est ce qu’une classe ? .............................................................................................3
d. Combien de classes ? ...................................................................................................3
e. Exemple Introductif .....................................................................................................3
f. Types de classifications ................................................................................................4
I. Introduction ....................................................................................................................5
II. Définition ........................................................................................................................5
III. Algorithme K-Means .......................................................................................................6
Application 1 : Compression d’une image sous R ................................................................8
Application 2 : Imagerie médicale sous MATLAB ...............................................................10
a. Introduction ...............................................................................................................10
b. Objectif ......................................................................................................................11
c. Le Programme ...........................................................................................................11
d. Exécution : .................................................................................................................12
Application 3 : classification des étudiants selon leurs notes sous R ..................................13
a. Introduction ...............................................................................................................13
b. Le Programme ...........................................................................................................13
c. Résultat .....................................................................................................................14
d. La classification K-means............................................................................................15
i) Pour K=2 : ...............................................................................................................15
ii) Pour K=3 : ...............................................................................................................16
Application 4 : classification des villes marocaines selons leurs températures ..................17
IV. Avantage de K-means .............................................................................................19
V. Inconvénients ...............................................................................................................19
VI. Exemples d’applications .........................................................................................19
Conclusion ........................................................................................................................19

1
I. Introduction
Les méthodes de classification ou de typologie ont pour but de regrouper les individus en un
nombre restreint de classes homogènes. Il s'agit donc de décrire les données en procédant à
une réduction du nombre des individus. Il ne sera question ici que de « classification
automatique » : les classes seront obtenues au moyen d'algorithmes formalisés et non par
des méthodes subjectives ou visuelles faisant appel à l'initiative du praticien.

L’importance de la classification dans les sciences se reflète dans la grande variété des
domaines ou tant leur nature que leur construction ont fait l’objet des recherches. Dans le
cadre des problèmes de classification, on dispose d’un ensemble de données qui reprend
une collection d’individus (objet) non étiqueté. Les classes sont encore inexistantes.
L’objectif alors d’obtenir des classes d’objets homogènes en favorisant l’hétérogénéité entre
ses différentes classes.

Les méthodes de classification se divisent en deux groupes:

 Les méthodes de classification automatique (aussi appelées méthodes de clustering)


méthodes basées sur la notion d'apprentissage non supervisé, laquelle consiste à
regrouper des objets appartenant à un ensemble T en classes restreintes de telle
sorte que les objets d'une même classe soient les moins dispersés possibles.
 Les méthodes d'affectation (aussi appelées «classificateurs») basées sur la notion
d'apprentissage supervisé : méthodes utilisant un ensemble d'exemples où les
classes d'appartenance sont connues au préalable. À partir de cet ensemble, des
normes (ou règles) d'affectation seront définies. De même, certains problèmes de
classification nécessitent de combiner les deux types d'apprentissages (supervisée et
non supervisée) appelé la méthode semi supervisé.

II. Contexte
a. Qu’est-ce que la classification automatique ?
En quelques mots, la classification automatique est la tâche qui consiste à regrouper, de
façon non supervisée (c-à-d sans l’aide préalable d’un expert), un ensemble d’objets ou plus
largement de données, de telle manière que les objets d’une même classe (appelé cluster)
sont plus proches (au sens d’un critère de (dis) similarité choisi) les unes au autres que celles
des autres classes (clusters). Il s’agit d’une tâche principale dans la fouille exploratoire de
données, et une technique d’analyse statistique des données très utilisée dans de nombreux
domaines, y compris l’apprentissage automatique, la reconnaissance de formes, le
traitement de signal et d’images, la recherche d’information, etc. L’idée est donc de
découvrir des groupes au sein des données, de façon automatique.

2
b. Quelles données ?
Les données traitées en classification automatique peuvent être des images, signaux, textes,
autres types de mesures, etc. Dans le cadre de ce travail les données seront des données
multidimensionnelles, par exemple une image (couleur). Chaque donnée est donc composée
de plusieurs variables .Pour le cas de données multidimensionnelles standard, chaque
donnée étant de dimension n (donc un point dans l’espace Rn). Les n données peuvent donc
être modélisées comme étant un tableau de n éléments, chaque élément du tableau étant
une structure "donnée" comme décrite précédemment. Dans le cas d’une image (couleur),
l’image contenant n lignes et m colonnes et donc n×m pixels couleurs, chaque pixel est
composé de trois composantes RVB, peut être modélisée par un tableaux de n×m structures.
Chaque structure "pixel" est composée au moins des champs, couleur et "label".

c. Qu’est ce qu’une classe ?


En gros, une classe est un ensemble de données formée par des données homogènes (qui
“se ressemblent” au sens d’un critère de similarité (distance, densité de probabilité, etc)).
Par exemple, si on a une base d’image de chiffres manuscrits, on aura la classes des zéros, la
classe des uns, etc. De même pour le cas d’images de lettres manuscrites. Une classe peut
être aussi une région dans une image couleur, un évènement particulier dans un signal
sonore, la classe spam et classes non spam dans le cas détection de spams dans un mail, etc.

d. Combien de classes ?
Le nombre de classes (qu’on notera K), pour commencer, peut être supposé fixe (donné par
l’utilisateur). C’est le cas par exemple si l’on s’intéresse à classer des images de chiffres
manuscrits (nombre de classes = 10 : 0 ; … ; 9) ou de lettres manuscrites (nombre de classes
= nombres de caractères de l’alphabet), etc. Néanmoins, il existe des critères, dits de choix
de modèle, qui permettent de choisir le nombre optimal de classes dans un jeu de données.
on verra par la suite comment on pourrait calculer le nombre de classes optimal par ce type
de critères.

e. Exemple Introductif
Considérons par exemple une image couleur, chaque image contient n pixels (x1; … ; xn),
chaque pixel xi contient d = 3 valeurs (RGB). On peut donc représenter donc le i ème pixel
(i = 1; … ; n) par un vecteur xi de dimension d = 3. Si l’on connaît les classes de certains pixels,
on pourra prédire les classes des autres pixels on choisissant une mesure de (dis) similarité,
par exemple une simple distance, ou une mesure de probabilité, etc. Chaque pixel à classer
aura donc la classe de celui qui lui est le plus proche au sens de la mesure de (dis)similarité
choisie. Ceci peut être utilisé par exemple en segmentation d’image. De manière générale,
on peut représenter les données comme un ensemble de vecteurs (x1; … ; xn), chaque xi est
composée de d composantes réelles.

3
f. Types de classifications
On distingue deux grands types de méthodes de classification :
 les méthodes non hiérarchiques qui produisent directement une partition en un
nombre fixé de classes.
 les méthodes hiérarchiques qui produisent des suites de partitions en classes de plus
en plus vastes à l'image des célèbres classifications des zoologistes en espèces,
genres, familles, ordre, etc.

Classification hiérarchique :
La classification hiérarchique consiste à effectuer une suite de regroupements en classes de
moins en moins fines en agrégeant à chaque étape les objets ou les groupes d'objets les plus
proches. Elle fournit ainsi un ensemble de partitions de l'ensemble d'objets. Cette approche
utilise la notion de distance, qui permet de refléter l'homogénéité ou l’hétérogénéité des
classes. Ainsi, on considère qu'un élément appartient à une classe s'il est plus proche de
cette classe que de toutes les autres. La figure est une illustration du principe des méthodes
hiérarchiques.

Classification non hiérarchique :


Il s'agit de regrouper n individus en k classes de telle sorte que les individus d'une même
classe soient le plus semblables possible et que les classes soient bien séparées. Ceci
suppose la définition d'un critère global mesurant la proximité des individus d'une même
classe et donc la qualité d'une partition. Si on dispose d'un tel critère on pourrait imaginer
d'examiner toutes les partitions possibles et de choisir la meilleure. Cette tâche est en réalité
impossible, même avec les plus gros ordinateurs, dès que le nombre des individus dépasse
quelques dizaines : pour 14 individus seulement il y a plus de 10 millions de partitions
possibles en 4 classes ! il est donc à peu près exclu de trouver la meilleure partition possible
et il faudra se contenter d'algorithmes aboutissant à des solutions approchées.

4
I. Introduction
En quelques mots, la classification automatique est la tâche qui consiste à regrouper,
de façon non supervisée , un ensemble d’objets ou plus largement de données, de telle
manière que les objets d’une même classe (appelé cluster) sont plus proches (au sens
d’un critère de (dis) similarité choisi) les unes au autres que celles des autres classes
(clusters). Il s’agit d’une tâche principale dans la fouille exploratoire de données, et une
technique d’analyse statistique des données très utilisée dans de nombreux domaines, y
compris l’apprentissage automatique, la reconnaissance de formes, le traitement de
signal et d’images, la recherche d’information, etc. L’idée est donc de découvrir des classes
au sein des données, de façon automatique Dans ce cadre plusieurs méthodes ont été
développées, la plus populaire est celle des k moyennes (K-means), elle doit sa popularité à
sa simplicité et sa capacité de traiter de larges ensembles de données.

II. Définition
L’algorithme k-means mis au point par McQueen en 1967, un des plus simples algorithmes
d’apprentissage non supervisé, appelée algorithme des centres mobiles, il attribue chaque
point dans un cluster dont le centre (centroïde) est le plus proche. Le centre est la moyenne
de tous les points dans le cluster, ses coordonnées sont la moyenne arithmétique pour
chaque dimension séparément de tous les Points dans le cluster c’est à dire chaque cluster
est représentée par son centre de gravité. K-means est l’algorithme de clustering le plus
connu et le plus utilisé, du fait de sa simplicité de mise en œuvre. Il partitionne les données
d’une image en K clusters. Contrairement à d’autres méthodes dites hiérarchiques, qui
créent une structure en « arbre de clusters » pour décrire les groupements, k-means ne crée
qu’un seul niveau de clusters. L’algorithme renvoie une partition des données, dans laquelle
les objets à l'intérieur de chaque cluster sont aussi proches que possible les uns des autres et
aussi loin que possible des objets des autres clusters. Chaque cluster de la partition est défini
par ses objets et son centroïde.
Le k-means est un algorithme itératif qui minimise la somme des distances entre chaque
objet et le centroïde de son cluster. La position initiale des centroïdes conditionne le résultat
final, de sorte que les centroïdes doivent être initialement placés le plus loin possible les uns
des autres de façon à optimiser l’algorithme. Kmeans change les objets de cluster jusqu'à ce
que la somme ne puisse plus diminuer.
Le résultat est un ensemble de clusters compacts et clairement séparés, sous réserve qu'on
ait choisi la bonne valeur K du nombre de clusters. Les principales étapes de l’algorithme
k-means sont :
1. Choix aléatoire de la position initiale des K clusters.
2. (Ré-)Affecter les objets à un cluster suivant un critère de minimisation des distances
(généralement selon une mesure de distance euclidienne).
3. Une fois tous les objets placés, recalculer les K centroïdes.
4. Réitérer les étapes 2 et 3 jusqu’à ce que plus aucune réaffectation ne soit faite.

5
III. Algorithme K-Means

La principale limite de cette méthode est la dépendance des résultats des valeurs de départ
(centres initiaux). À chaque initialisation correspond une solution différente (optimum local)
qui peut dans certain cas être très loin de la solution optimale (optimum global). Une
solution naïve à ce problème consiste à lancer l'algorithme plusieurs fois avec différentes
initialisations et retenir le meilleur regroupement trouvé. L’usage de cette solution reste
limité du fait de son coût et que l'on peut trouver une meilleure partition en une seule
exécution.

Exemple 1 :
La figure 2.1 illustre l’algorithme sur un exemple où quatre points doivent être classés en 2
classes. On remarque sur cet exemple que bien qu’à l’initialisation les centres de classes sont
mal répartis, l’algorithme a convergé en retrouvant les “vraies” classes.

6
Une illustration de l’algorithme K-means. (1) On dispose de 4 points à classer en deux
classes. (2) A l’initialisation, deux de ces points sont choisis comme centres de classe.
(3) Deux classes sont créées en regroupant les autres points en fonction du centre de classe
le plus proche. (4) On définit les nouveaux centres de classe comme étant le barycentre des
classes nouvellement créées. (5) On regroupe à nouveau les points. (6) On définit les
nouveaux centres de classes. A l’étape suivante rien ne change, l’algorithme a convergé.

Exemple 2 : Résultat de K-means ( classes de couleur )

Exemple 3:
On suppose qu’on a notre donnée d’entrés comme le graphe illustrer ci-dessous et définir
nombre de classe k=3

On a choisi aléatoirement trois solutions (3 vecteurs moyens)

7
Tous les points dans la zone verte appartiennent à cette classe parce qu’ils sont proche au
vecteur moyen vert plus que les autres vecteurs et la même chose pour les deux autres
groupes Ensuite on recalcule le vecteur moyen de chaque classe par conséquent chaque
vecteur va être repositionner dans le groupe on obtient la nouvelle classification suivante :

On refait la même opération jusqu’à l’obtention de la convergence :

Application 1 : Compression d’une image sous R


 Installer package : install.packages("jpeg") ;
 charger la bibliothèque : library("jpeg") ;
 Ouvrir l’image : renard_img<-readJPEG("renard.jpg") ;
 Obtenir les dimensions : img_Dm <- dim(renard_img) ;
 Attribuons les canaux RGB à un cadre de données :
Impossons notre image dans un format de base de données, c'est-à-dire que nous
essaierons d'obtenir la valeur «Rouge», «Vert», «Bleu» pour chacun des pixels

8
img_RGB <- data.frame(
x_axis = rep(1:img_Dm[2], each = img_Dm[1]),
y_axis = rep(img_Dm[1]:1, img_Dm[2]),
Red = as.vector(renard_img[,,1]),
Green = as.vector(renard_img[,,2]),
Blue = as.vector(renard_img[,,3])
)
 Dessiner l’image :
library(ggplot2) ;
ggplot(data = img_RGB, aes(x = x_axis, y = y_axis)) +
geom_point(colour = rgb(img_RGB[c("Red", "Green", "Blue")])) +
labs(title = "Original Image") +
xlab("x-axis") +
ylab("y-axis")
 Lancer l’algorithme de k-means en choisissant le nombre K :
k_cluster <- 2
k_img_clstr <- kmeans(img_RGB[, c("Red", "Green", "Blue")],
centers = k_cluster)
k_img_colors <- rgb(k_img_clstr$centers[k_img_clstr$cluster,])
 Dessiner l’image compressée :
ggplot(data = img_RGB, aes(x = x_axis, y = y_axis)) +
geom_point(colour = k_img_colors) +
labs(title = paste("k-Means Clustering of", k_cluster, "Colours")) +
xlab("x") +
ylab("y")

L'image originale

9
Application 2 : Imagerie médicale sous MATLAB
a. Introduction
Comme toutes les techniques de l’analyse des données,la classification k-means est utilisé
pour résoudre des problèmes du monde réel par exemple la médecine, l’informatique...

Dans cette application on va explique comment on peut, améliorer la lecture et


l’interprétation d’une image IRM (Imagerie par résonance magnétique), par un script simple
sur Matlab.

10
b. Objectif
L’objectif de cette application est de classifier et de s’assurer de l’existence du cancer des
poumons en traitant une image IRM par la méthode des k-means qui fait le partitionnement
des données par l’intermédiaire d’un script Matlab.

c. Le Programme
La classification k-means a été appliqué sous forme d’un programme Matlab qui traite une
image entrée par l’utilisateur selon l’algorithme suivantes :

 Conversion de l’image du RGB au niveau de gris


 Conversion de l’image en un vecteur colonne contenant les valeurs de chaque pixel
 Augmenter la précision utilisant la fonction double
 Classification des valeurs de gris selon le nombre de classes choisis
 Remodeler le vecteur obtenu par le traitement k-mean à la taille de l’image initiale .

Script Matlab :

function K_mean(nom_image)

% function traite une image par la methode de Kmeans


% traitement
a=rgb2gray(imread(M));% lecture et conversion en nuances de gris
figure,
imshow(a),title('image originale');% affichage
imdata=reshape(a,[],1);%redimentionnement de l image
imdata=double(imdata);%auguementer la precision
[idx nn]=kmeans(imdata,4);
imidx=reshape(idx,size(a));%redimentionnement
figure,
imshow(imidx,[]),title('classification K-means avec K=4');
[idx nn]=kmeans(imdata,3);
imidx=reshape(idx,size(a));
figure,
imshow(imidx,[]),title('classification K-means avec K=3');
[idx nn]=kmeans(imdata,2);
imidx=reshape(idx,size(a));
figure,
imshow(imidx,[]),title('classification K-means avec K=2');

end

Les fonctions utilisées :

 Imread() : pour la lecture de l’image IRM


 Rgb2gray() : conversion en nuances de gris
 Reshape() : redimensionnement
 Double() : augmentation de la précision
 Kmeans() : classifier les niveau de gris de l’image
 Imshow() : l’affichage des images

11
d. Exécution :
 Avant traitement :

 Après traitement :

12
Application 3 : classification des étudiants selon leurs notes sous R
a. Introduction
La classification K-means est la méthode de classification la plus simple et la plus utilisée
pour diviser un ensemble de données en un ensemble de k groupes.

Pour faire La classification K-means on aura besoin de charger les paquetages suivants :

 library(tidyverse)
 library(cluster)
 library(factoextra)

Tableau des étudiants à classifier :

b. Le Programme
 Charger les packages :

library(tidyverse)

library(cluster)

library(factoextra)

 lire (importe) les données :

data=read.csv2("note.csv",row.names=1)

- Comme nous ne voulons pas que l'algorithme de classification dépende d'une unité
variable arbitraire, nous commençons par mettre à l'échelle / normaliser les données en
utilisant fonction scale

13
data=scale(data)

NB : cette instruction dans notre cas est optionnelle par ce que les donne sont déjà sans
unité.

 calcule de distance entre les individus :

Dans R, il est simple de calculer et de visualiser la matrice de distance en utilisant les


fonctions get_dist et fviz_dist du paquet factoextra.

get_dist : pour calculer une matrice de distance entre les lignes d'une matrice de
données. La distance par défaut calculée est l’Euclidien.

fviz_dist : pour visualiser une matrice de distance.

distance <- get_dist ( data )

> fviz_dist ( distance , gradient = list ( low = "#00AFBB" , mid = "white" , high
= "#FC4E07" ))

c. Résultat

 Interprétation :

On remarque que plus que la distance est grande entre deux individués plus que le colleur
approche au rouge et dans le cas inverse le colleur approche au bleu.

14
d. La classification K-means
Nous pouvons calculer k-means dans R avec la fonction kmeans. Ici regroupera les
données en k classes (centers = k).

i) Pour K=2 :
> k2 <- kmeans ( data , centers = 2 )
> str ( k2 )
Ce qui donne :

 Interprétation :

La sortie de kmeans est une liste avec plusieurs bits d'information. Le plus important
étant :

Cluster : Un vecteur d'entiers (de 1: k) indiquant le cluster auquel chaque


point est alloué.
Centers : Une matrice de centres de cluster.
totss : La somme totale des carrés.
Betweenss : : Vecteur de la somme des carrés entre les classes(entre).
withinss : Vecteur de la somme des carrés à l'intérieur(intra) d'un class.
Size : Le nombre de points dans chaque cluster.
Nous pouvons également voir nos résultats en utilisant fviz_cluster . Cela fournit une
belle illustration des classes. S'il y a plus de deux dimensions (variables), fviz_cluster
effectuera une analyse en composantes principales (PCA) et tracera les points de
données selon les deux premiers composants principaux.

> fviz_cluster ( k2 , data )

15
 Interprétation :

On remarque que les étudient sont constitué grand 2 classe chaque classe contient
un nombre des étudiants mais la présentation ne données pas une bonne idée sur la
distribution des notes des étudiants.

NB : str (k3) # names(k3) même rôle que str, ms str plus généralisé

ii) Pour K=3 :


> k3 <- kmeans ( data , centers = 3 )
> str ( k3)
Ce qui donne

16
 Interprétation :

On remarque bien que les étudient sont constitué 3 classe chaque classe contient un
nombre des étudiants où la classe 1 contient les étudiants qu’ont des bonnes notes,
la classe 2 contient les étudiants qu’ont des mauvaises notes et la classe 3 contient
les étudiants qu’ont des notes moyennes.

Application 4 : classification des villes marocaines selons leurs


températures pendant l’été
l’objectif de cette partie et de faire la classification des villes marocain d’après leur
température dans l’été et de montre le rôle de l’utilisation de la fonction fviz_cluster qui
permet de faire automatiquement l’analyse en composantes principales (ACP) et tracera les
points de données selon les deux premiers composants principaux.

tableau des villes à classifier :

17
Exécution de code :

> library(tidyverse)
> library(cluster)
> library(factoextra)
> data=read.csv2("temp.csv",row.names=1)
> data=scale(data)
> distance <- get_dist(data)
> fviz_dist ( distance ,gradient = list (low = "#00AFBB" ,mid= "white" ,high="#FC4E07"
))
> k3<-kmeans ( data , centers =3 )
> fviz_cluster ( k3 , data )
Résultat et interprétation :

On remarque bien que les classes sont bien présente sur les deux nouvelles axes (Dim1
Dim2) résultant De l’analyse en composantes principales (ACP).

Donc on aura 3 classes des villes la premier contient les villes qui en une température
moyenne pendent l’été, la troisième classe contient les villes qu’ont une température faible
(froide) et la deuxième classe contient les villes qu’ont une température très élevée (chaude)
pendent l’été.

18
IV. Avantage de K-means
Nous pouvons citer quelque avantage de k-means par :

L’avantage de ces algorithmes est avant tout leur grande simplicité.

 Tend à réduire l’erreur quadratique.


 Applicable à des données de grandes tailles.

La convergence est parfois possible en une seule itération => plus grande rapidité.

V. Inconvénients
 Le nombre de classe doit être fixé au départ.
 Ne détecte pas les données bruitées.
 Le résultat dépend de tirage initial des centres des classes.
 Les clusters sont construits par rapports à des objets inexistants (les milieux)
 N’est pas applicable en présence d’attributs qui ne sont pas du type intervalle.

VI. Exemples d’applications


 Marketing : segmentation du marché en découvrant des groupes de clients distincts
à partir de bases de données d’achats.
 Environnement : identification des zones terrestres similaires (en termes
d’utilisation) dans une base de données d’observation de la terre.
 Assurance : identification de groupes d’assurés distincts associés à un nombre
important de déclarations.
 Planification de villes : identification de groupes d’habitations suivant le type
d’habitation, valeur, localisation géographique, …

Conclusion
L’algorithme du K-Means fut l’une des approches non-hiérarchiques les plus populaires. Il est
l'outil de classification le plus utilisé dans les applications scientifiques et industrielles.
Quoiqu'il ne fonctionne pas très bien pour les attributs catégoriels, il a un bon sens
géométrique et statistique pour les attributs numériques. Pour cette raison on a choisi la
version incrémentale pour appliquer le K-means dans notre application qui sera détaillé dans
le chapitre suivant.

19

Vous aimerez peut-être aussi