Académique Documents
Professionnel Documents
Culture Documents
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.
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".
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.
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 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
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 :
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...
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 :
Script Matlab :
function K_mean(nom_image)
end
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)
b. Le Programme
Charger les packages :
library(tidyverse)
library(cluster)
library(factoextra)
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é.
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 ( 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 :
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é
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.
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 :
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.
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