Clustering
Clustering
Clustering
Comment étudier des données non étiquetées ? La dimension de réduction nous permet de les visuali-
ser ; mais les méthodes dites de partitionnement de données, ou clustering, nous permettent d’aller beaucoup
plus loin. Il s’agit de séparer les données en sous-groupes homogènes, appelés clusters, qui partagent des
caractéristiques communes. Dans ce chapitre, nous détaillerons l’intérêt de ces techniques et verrons trois
types d’approches de clustering : le clustering hiérarchique, le clustering par centroïdes, et le clustering
par densité.
Objectifs
— Expliquer l’intérêt d’un algorithme de clustering
— Évaluer le résultat d’un algorithme de clustering
— Implémenter un clustering hiérarchique, un clustering par la méthode des k moyennes, et un clus-
tering par densité.
148
12.2. Évaluer la qualité d’un algorithme de clustering 149
Exemple
Prenons l’exemple de l’annotation d’un corpus de documents texte. Annoter manuellement chacun de
ces documents par le ou les sujets qu’il couvre est un travail fastidieux. Les personnes qui l’effectuent sont
d’ailleurs susceptibles de commettre involontairement des erreurs d’inattention. Il est ainsi moins coûteux,
voire plus efficace, d’utiliser un algorithme de clustering pour regrouper automatiquement ces documents
par sujet. Il suffira alors d’avoir recours à un intervenant humain pour assigner un sujet à chaque cluster
en lisant uniquement un ou deux des documents qu’il contient.
Le médoïde est le point du cluster le plus proche du centroïde (il peut ne pas être unique, auquel cas il
sera choisi arbitrairement). Il sert de représentant du cluster :
m
~ C = arg min d(~x, µ
~ C ).
x∈C
~
Que des observations proches appartiennent au même cluster peut se traduire par la notion d’homo-
généité, illustrée sur la figure 12.1 :
Définition 12.2 (Homogénéité) On appelle homogénéité du cluster Ck , ou tightness en anglais, la moyenne
des distances des observations de ce cluster à son centroïde :
1 X
Tk = d(~x, µ
~ k ).
|Ck |
x∈Ck
~
150 Chapitre 12. Clustering
~ k est le centroïde de Ck .
Ici µ
L’homogénéité globale d’un clustering de D se calcule comme la moyenne des homogénéités des clusters :
K
1 X
T = Tk .
K
k=1
Figure 12.1 – Les deux clusters représentés sur le panneau de gauche sont homogènes, resserrés sur eux-
mêmes : ils sont composés de points proches les uns des autres. À l’inverse, les deux clusters représentés
sur le panneau de droite sont moins homogènes.
Pour quantifier à quel point les clusters sont distants les uns des autres, nous pouvons utiliser le critère
de séparabilité, illustré sur la figure 12.2.
Définition 12.3 (Séparabilité) On appelle séparabilité des clusters Ck et Cl la distance entre leurs cen-
troïdes :
Skl = d(~µk , µ
~ l ).
La séparabilité globale d’un clustering de D se calcule comme la moyenne des séparabilités des clusters
deux à deux :
K X K
2 X
S= Skl .
K(K − 1)
k=1 k=k+1
Plutôt que de considérer les deux critères de séparabilité (que l’on souhaite élevée) et d’homogénéité
(que l’on souhaite faible) séparément, il est possible de les comparer l’un à l’autre grâce à l’indice de Davies-
Bouldin.
Définition 12.4 (Indice de Davies-Bouldin) On appelle indice de Davies-Bouldin du cluster Ck la valeur
Tk + Tl
Dk = max .
l6=k Skl
12.2. Évaluer la qualité d’un algorithme de clustering 151
Figure 12.2 – Les trois clusters représentés sur le panneau de gauche sont bien séparés, contrairement à
ceux représentés sur le panneau de droite qui sont proches les uns des autres.
L’indice de Davies-Bouldin global d’un clustering de D se calcule comme la moyenne des indices de Davies-
Bouldin des clusters :
K
1 X
D= Dk .
C
k=1
Une autre façon de prendre en compte séparabilité et homogénéité est de calculer le coefficient de sil-
houette, qui permet de quantifier pour chacune des observations si elle appartient ou non au bon cluster.
1 X 1 X
a(~x) = d(~u, ~x); b(~x) = min d(~u, ~x).
|Ck(~x) | − 1 x) |Cl |
l6=k(~
u∈Ck(~x) ,~
~ u6=~
x u∈Cl
~
Le coefficient de silhouette de ~x est d’autant plus proche de 1 que son assignation au cluster Ck(~x) est
satisfaisante.
152 Chapitre 12. Clustering
En bioinformatique, où il est souvent délicat d’étiqueter les objets d’étude par manque de connais-
sances, il est fréquent d’évaluer un clustering en le comparant à une ontologie, c’est-à-dire une classifica-
tion d’objets (par exemple, des gènes) en catégories décrites par un vocabulaire commun et organisées de
manière hiérarchique. On peut évaluer la cohérence d’un clustering avec une ontologie par une analyse
d’enrichissement, qui consiste à évaluer s’il y a plus d’objets d’une catégorie de l’ontologie au sein d’un clus-
ter que ce à quoi on pourrait s’attendre par hasard. Si l’on suppose les données issues d’une distribution
hypergéométrique, il s’agit alors de calculer, pour un cluster Ck , une catégorie G, et un seuil t ∈ N,
|G| n−|G|
t
s |Ck |−s
X
P[|G ∩ Ck | ≥ t] = 1 − n
. (12.1)
s=1 |Ck |
En effet, le terme sous la somme est la probabilité que, lorsqu’on tire |Ck | éléments parmi n, s d’entre eux
appartiennent à G.
Muni de ces différentes façons d’évaluer un algorithme de partitionnement de données, nous pouvons
maintenant découvrir ces algorithmes eux-mêmes. Ces algorithmes cherchent à optimiser les critères d’ho-
mogénéité et de séparabilité que nous venons de définir. Comme il n’est pas possible de le faire de manière
exacte, il s’agit de le faire de manière approchée. Nous nous concentrerons dans ce chapitre sur les trois
principales familles d’algorithmes de clustering : clustering hiérarchique, clustering par centroïdes, et clus-
tering par densité.
12.3. Clustering hiérarchique 153
Le clustering hiérarchique forme des clusters séparés par récurrence : il s’agit de partitionner les données
pour toutes les échelles possibles de taille de partition, dans une hiérarchie à plusieurs niveaux.
12.3.1 Dendrogramme
Le résultat d’un clustering hiérarchique peut se visualiser sous la forme d’un dendrogramme. Il s’agit d’un
arbre dont les n feuilles correspondent chacune à une observation. Chaque nœud de l’arbre correspond à
un cluster :
— la racine est un cluster contenant toutes les observations
— chaque feuille est un cluster contenant une observation
— les clusters ayant le même parent sont agglomérés en un seul cluster au niveau au-dessus
— un cluster est subdivisé en ses enfants au niveau au-dessous.
Ce sont donc les nœuds intermédiaires qui nous intéresseront le plus.
Enfin, la longueur d’une branche de l’arbre est proportionnelle à la distance entre les deux clusters
qu’elle connecte.
La figure 12.3 représente un exemple de dendrogramme. Dans le cas où n est trop grand pour repré-
senter l’intégralité de l’arbre, il est classique de le couper et de n’en représenter que la partie de la racine
à un niveau que l’on choisit.
Cette facilité à représenter visuellement le résultat d’un algorithme de clustering hiérarchique fait qu’il
est très utilisé dans des domaines comme la bioinformatique.
154 Chapitre 12. Clustering
Définition 12.7 (Lien simple) On appelle lien simple, ou single linkage, la distance entre deux clusters
définie par
dsimple (Ck , Cl ) = min d(~u, ~v ).
u,~v )∈Ck ×Cl
(~
On peut aussi choisir d’agglomérer deux clusters si tous leurs éléments sont proches. On utilise alors le
lien complet, qui est la distance maximale entre un élément du premier cluster et un élément du deuxième.
Définition 12.8 (Lien complet) On appelle lien complet, ou complete linkage, la distance entre deux
clusters définie par
dcomplet (Ck , Cl ) = max d(~u, ~v ).
u,~v )∈Ck ×Cl
(~
Une approche intermédiaire consiste à considérer la distance moyenne entre un élément du premier
cluster et un élément du deuxième. C’est le lien moyen.
Définition 12.9 (Lien moyen) On appelle lien moyen, ou average linkage, la distance entre deux clusters
définie par
1 1 X X
dmoyen (Ck , Cl ) = d(~u, ~v ).
|Ck | |Cl |
u∈Ck ~v ∈Cl
~
Cette distance est aussi parfois appelée UPGMA pour Unweighted Paired Group Method with Arithmetic mean.
Une alternative au lien moyen est le lien centroïdal, qui considère la distance entre les centroïdes des
clusters.
12.3. Clustering hiérarchique 155
Définition 12.10 (Lien centroïdal) On appelle lien centroïdal, ou centroid linkage, la distance entre deux
clusters définie par
1 X 1 X
dcentroidal (Ck , Cl ) = d ~u, ~v = d(~
µk , µ
~ l ).
|Ck | |Cl |
u∈Ck
~ ~v ∈Cl
Cette distance est aussi parfois appelée UPGMC pour Unweighted Paired Group Method with Centroid.
Les fonctions de lien ci-dessus s’attachent à garantir la séparabilité des clusters. À l’inverse, il est possible
1 P
de chercher à maximiser leur homogénéité : il s’agit de minimiser Tk = |Ck | ~x∈Ck d(~x, µ ~ k ). Dans le cas où d
1 P
est la distance euclidienne, alors Tk = |Ck | ~x∈Ck ||~x − µ ~ k ||2 . Le clustering de Ward utilise une formulation
similaire : il s’agit d’agglomérer deux clusters de sorte à minimiser la variance intra-cluster du résultat.
1 X
Varin (C) = ~ ||22 .
||~x − µ
|C|
x∈C
~
L’inertie globale d’un clustering de D est alors donnée par la somme des inerties des clusters :
K
X 1 X
V = ~ k ||22 .
||~x − µ
|Ck |
k=1 x∈Ck
~
Cependant, résoudre ce problème de manière exacte n’est pas possible. On utilise donc une heuristique,
l’algorithme de Lloyd, proposé par Stuart Lloyd (1982).
4. Répéter les opérations 2–3 jusqu’à convergence, c’est-à-dire jusqu’à ce que les affectations ne changent
plus.
L’algorithme de Lloyd implémente une stratégie gloutonne, et s’il converge en général très rapidement,
il peut tomber dans un minimum local. Il peut donc être pertinent de le faire tourner plusieurs fois, et de
garder la solution qui a la plus faible variance intra-cluster.
Si l’on doit itérer t fois l’algorithme de Lloyd, sachant que le coût de calculer Kn distances en p dimen-
sions est de l’ordre de O(npK), la complexité algorithmique de l’algorithme de Lloyd est en O(npKt). K
et t sont typiquement négligeables devant n, et cet algorithme est donc linéaire en le nombre d’observa-
tions, par opposition au clustering hiérarchique dont le coût est quadratique en n : nous avons remplacé le
calcul des distances d’une observation ~x i aux n − 1 autres points du jeu de données par un calcul de sa
distance à K centroïdes.
Données aberrantes
L’algorithme du k-means est sensible aux données aberrantes : elles vont en effet tirer un cluster à elle.
Si une observation ~x i est très éloignée des autres observations, alors elle se retrouvera dans son propre
cluster, tandis que le reste des données sera partitionné en K − 1 clusters.
Cette propriété est néanmoins intéressante, car elle permet d’utiliser l’algorithme des k-moyennes jus-
tement pour détecter les observations aberrantes : ce sont celles qui sont seules dans leur cluster.
12.4.3 Variantes
k-means++
L’algorithme du k-means est stochastique : on peut obtenir des résultats différents selon l’initialisation,
et certains de ces résultats peuvent avoir une inertie bien plus grande que la solution optimale.
Pour éviter ce problème, l’algorithme k-means++ commence par initialiser les centroïdes de manière à
les disperser au maximum parmi les données. Plus précisément, la procédure consiste à
1. Choisir un premier centroïde ~u 1 aléatoirement parmi les observations D
2. Pour k = 2, . . . , K :
Choisir le k-ème centroïde ~u k parmi D \ ~u k−1 , en suivant une loi proportionnelle au carré de la
distance à ~u k−1 , c’est-à-dire que ~u k aura de fortes chances d’être éloigné de ~u k−1 .
Cette approche ne rend pas le k-means déterministe, mais permet d’éviter les « pires » solutions.
On peut ainsi réécrire l’étape (2) de l’algorithme de Lloyd sans faire appel à l’application φ, et sans avoir
besoin de recalculer explicitement les centroïdes à l’étape (3).
158 Chapitre 12. Clustering
Remarque
La version à noyau de la méthode des k-moyennes ne permet généralement pas de connaître les cen-
troïdes des clusters, puisqu’ils vivent dans l’espace de redescription H qui n’est pas accessible sans connaître
φ.
(a) Il nous semble naturel de par- (b) Partitionnement en 3 clusters (c) Partitionnement en 3 clusters
titionner ces données en 3 cercles par clustering agglomératif (lien par k-moyennes.
concentriques. moyen).
C’est le problème que le clustering par densité cherche à résoudre, en observant que les points les plus
proches d’un point donné sont sur le même cercle et non sur un autre cercle. Il s’agit de former des clusters
d’observations proches les unes des autres, au sens où si deux éléments ~x i et ~x l d’un même cluster Ck
peuvent être éloignés l’un de l’autre, il existe une séquence d’éléments ~u 1 , ~u 2 , . . . , ~u m ∈ Ck tels que ~u 1
est proche de ~x i , ~u m est proche de ~x l , et pour tout t ∈ {1, . . . , m}, ~u t est proche de ~u t−1 . Cette idée est
illustrée sur la figure 12.5
Pour formaliser cette idée, nous allons avoir besoin de quelques définitions.
Définition 12.13 (-voisinage) Soient D = {~x 1 , ~x 2 , . . . , ~x n } le jeu d’éléments de X à partitionner, d
une distance sur X , et > 0. On appelle -voisinage d’un élément ~x ∈ X l’ensemble des observations de D
dont la distance à ~x est inférieure à :
Définition 12.14 (Point intérieur) Étant donné nmin ∈ N, on dit de ~x ∈ X qu’il est un point intérieur,
ou core point en anglais, si son -voisinage contient au moins nmin éléments : |N (~x)| ≥ nmin .
12.5. Clustering par densité 159
Figure 12.5 – Il existe un chemin entre voisins proches permettant de passer d’un point à un autre du même
cluster.
Définition 12.15 (Connexion par densité) On dit que ~x et ~v ∈ X sont connectés par densité si l’on
peut les « relier » par une suite d’-voisinages contenant chacun au moins nmin éléments. Formellement,
cela signifie qu’il existe m ∈ N, et une séquence ~u 1 , ~u 2 , . . . , ~u m d’éléments de D tels que ~u 1 est un point
intérieur de N (~x), ~u 2 est un point intérieur de N (~u 1 ), . . . , ~u m est un point intérieur de N (~u m−1 ), ~v
est un point intérieur de N (~u m ).
L’algorithme DBSCAN, proposé en 1996 par Martin Ester, Hans-Peter Kriegel, Jörg Sander et Xiaowei
Xu (Ester et al., 1996), partitionne les données en créant des clusters de points atteignables par densité les
uns depuis les autres. C’est un algorithme de partitionnement populaire, qui a obtenu en 2014 une distinc-
tion de contribution scientifique ayant résisté à l’épreuve du temps, le test of time award de la prestigieuse
conférence KDD.
Définition 12.16 (DBSCAN) On appelle DBSCAN, pour Density-Based Spatial Clustering of Applications with
Noise, ou partitionnement dans l’espace par densité pour des applications bruitées, la procédure de parti-
tionnement suivante :
— Initialisation : Un ensemble d’éléments visités V = ∅, une liste de clusters K = ∅, une liste d’obser-
vations aberrantes A = ∅.
— Pour chaque élément ~x ∈ D \ V :
1. Construire N (~x)
2. Si |N (~x)| < nmin : considérer (temporairement) ~x comme une observation aberrante :
A ← A ∪ {~x}
Sinon :
— créer un cluster C ← {~x}
— augmenter ce cluster par la procédure grow_cluster(C, N (~x), , nmin )
3. Ajouter C à la liste des clusters : K ← K ∪ C
160 Chapitre 12. Clustering
Un des avantages de DBSCAN est sa robustesse aux données aberrantes, qui sont identifiées lors de la
formation des clusters.
Le fléau de la dimension (voir section 11.1.3) rend DBSCAN difficile à appliquer en très grande dimen-
sion : les -voisinages auront tendance à ne contenir que leur centre. De plus, la densité étant définie par les
paramètres et nmin , DBSCAN ne pourra pas trouver de clusters de densité différente. Cependant, DBSCAN
ne requiert pas de prédéfinir le nombre de clusters, et est efficace en temps de calcul. Son application aux
données de la figure 12.4a est illustrée sur la figure 12.6.
Points clefs
— Le clustering, ou partitionnement de données, cherche à identifier des classes sans utiliser d’éti-
quettes.
— En l’absence d’étiquette, la qualité d’une partition peut s’évaluer sur des critères de séparabilité et
d’homogénéité
161
— Le clustering hiérarchique partitionne les données de manière itérative. Son résultat peut être vi-
sualisé sur un dendrogramme.
— Le clustering par la méthode des k-moyennes s’effectue grâce à l’algorithme de Lloyd ou une de ses
variantes. Il permet de trouver efficacement K clusters convexes.
— La version à noyau de la méthode des k-moyennes permet de l’appliquer pour découvrir des clusters
non convexes.
— Le clustering par densité permet d’identifier des régions denses du jeu de données, c’est-à-dire
des observations qui peuvent former un ensemble non convexe mais qui sont proches les unes des
autres.
Bibliographie
Ester, M., Kriegel, H.-P., Sander, J., and Xu, X. (1996). A density-based algorithm for discovering clusters
in large spatial databases with noise. In Proceedings of the Second International Conference on Knowledge
Discovery and Data Mining, pages 226–231, Portland (OR). AAAI Press.
Jain, A. K. and Dubes, R. C. (1988). Algorithms for Clustering Data. Prentice Hall, New York.
Lloyd, S. (1982). Least squares quantization in PCM. IEEE Transactions on Information Theory, 28(2) :129–137.
Steinhaus, H. (1957). Sur la division des corps matériels en parties. Bulletin de l’Académie polonaise des Sciences,
4(12) :801–804.
Xu, R. and Wunsch II, D. (2005). Survey of clustering algorithms. IEEE Transactions on Neural Networks, 16 :645–
678.