k-means#
Dénomination française : algorithme des centres mobiles.
Principe#
Les centres mobiles ou nuées dynamiques sont un algorithme de classification non supervisée. A partir d’un ensemble de points, il détermine pour un nombre de classes fixé, une répartition des points qui minimise un critère appelé inertie ou variance intra-classe.
Algorithme A1 : centre mobile, k-means
On considère un ensemble de points :
A chaque point est associée une classe :
.
On définit les barycentres des classes :
.
Initialisation
L’initialisation consiste à choisir pour chaque point une classe aléatoirement dans
. On pose
.
Calcul des barycentres
Calcul de l’inertie
Attribution des classes
Retour à l’étape du calcul des barycentres jusqu’à convergence de l’inertie .
Théorème T1 : convergence des k-means
Quelque soit l’initialisation choisie, la suite
construite par l’algorithme des k-means
converge.
La démonstration du théorème nécessite le lemme suivant.
Lemme L1 : inertie minimum
Soit ,
points de
, le minimum de la quantité
:
est atteint pour
le barycentre des points
.
Soit ,
points de
.
On peut maintenant démontrer le théorème.
L’étape d’attribution des classes consiste à attribuer à chaque
point le barycentre le plus proche. On définit par :
On en déduit que :
Le lemme précédent appliqué à chacune des classes ,
permet d’affirmer que
.
Par conséquent, la suite
est décroissante et minorée par
0, elle est donc convergente.
L’algorithme des centres mobiles cherche à attribuer à chaque
point de l’ensemble une classe parmi les disponibles.
La solution trouvée dépend de l’initialisation et n’est pas forcément
celle qui minimise l’inertie intra-classe : l’inertie finale est
un minimum local. Néanmoins, elle assure que la partition est formée
de classes convexes : soit
et
deux classes différentes,
on note
et
les enveloppes convexes des points qui
constituent ces deux classes, alors
.
La figure suivante présente un exemple d’utilisation de l’algorithme
des centres mobiles. Des points sont générés aléatoirement
dans le plan et répartis en quatre groupes.

C’est une application des centres mobiles avec une classification en quatre classes d’un ensemble aléatoire de points plus dense sur la partie droite du graphe. Les quatre classes ainsi formées sont convexes.
Homogénéité des dimensions#
Les coordonnées des points
sont généralement non homogènes :
les ordres de grandeurs de chaque dimension sont différents.
C’est pourquoi il est conseillé de centrer et normaliser chaque dimension.
On note :
:
Les points centrés et normalisés sont :
L’algorithme des centres mobiles est appliqué sur l’ensemble
.
Il est possible ensuite de décorréler les variables ou d’utiliser
une distance dite de Malahanobis définie par
où
désigne la transposée de
et
est une matrice symétrique définie positive.
Dans le cas de variables corrélées, la matrice
où
est la matrice
de variance-covariance des variables aléatoires
.
Améliorations de l’initialisation#
K-means++#
L’article [Arthur2007] montre que l’initialisation aléatoire n’est pas efficace et est sensible aux outliers ou points aberrants. L’étape d’initialisation est remplacée par la suivante :
Algorithme A2 : initialisation k-means++
Cette étape d’initialisation viendra remplacer celle définie dans l’algorithme k-means. On considère un ensemble de points :
A chaque point est associée une classe :
.
Pour centres, on choisit
au hasard dans l’ensemble
.
Pour les suivants :
On choisit aléatoirement
avec la probabilité
On revient à l’étape 2 jusqu’à ce que
.
La fonction est définie par la distance du point
au centre
choisi parmi les
premiers centres.
.
La suite de l’algorithme k-means++ reprend les mêmes étapes que k-means.
Cette initilisation éloigne le prochain centre le plus possibles des centres déjà choisis. L’article montre que :
Théorème T2 : Borne supérieure de l’erreur produite par k-means++
On définit l’inertie par
.
Si
définit l’inertie optimale alors
.
La démonstration est disponible dans l’article [Arthur2007].
K-means||#
L’article [Bahmani2012] propose une autre initialisation que K-means++ mais plus rapide et parallélisable.
Algorithme A3 : initialisation k-means||
Cette étape d’initialisation viendra remplacer celle définie dans l’algorithme k-means. On considère un ensemble de points :
A chaque point est associée une classe :
.
Pour centres, on choisit
au hasard dans l’ensemble
.
La fonction est définie par la distance du point
au plus proche centre
:
.
Cette étape ajoute à l’ensemble des centres
un nombre aléatoire de centres à chaque étape.
L’ensemble
contiendra plus de
centres.
Pour tout
, on assigne le poids