Vous êtes sur la page 1sur 34

K-means

Proposé par:
Dr. Ben Othman Ibtissem
Qu’est-ce que K-Means ?

• K-Means est un algorithme simple d’apprentissage non


supervisé utilisé pour résoudre les problèmes de
clustering. Il suit une procédure simple consistant à
classer un ensemble de données dans un nombre de
clusters, défini par la lettre « k« , qui est fixé au
préalable.
• On positionne ensuite les clusters comme des points.
On associe tous les observations ou points de données
au cluster le plus proche, calculés et ajustés. Puis, le
processus recommence en utilisant les nouveaux
ajustements jusqu’à ce qu’un résultat souhaité soit
atteint.
Pourquoi KMeans ?

• L’algorithme de clustering K-means est déployé pour découvrir des


groupes qui n’ont pas été explicitement définis. Aujourd’hui, on
l’utilise activement dans une grande variété d’applications
commerciales, notamment :
• La segmentation de la clientèle : on regroupe les clients afin de
mieux adapter les produits et les offres ;
• Le regroupement de textes, de documents ou de résultats de
recherche : regroupement pour trouver des sujets dans un texte ;
• Le regroupement d’images ou compression d’images : regroupe
les images ou les couleurs similaires ;
• La détection d’anomalies : trouver ce qui n’est pas similaire ou les
aberrations des clusters ;
• L’apprentissage semi-supervisé : on combine les clusters à un
ensemble plus petit de données étiquetées et à l’apprentissage
automatique supervisé afin d’obtenir des résultats plus valables.
• KMeans possède des avantages qui font de lui
l’un des algorithmes de clustering préféré des
data scientists :
• Il s’agit d’un algorithme classique de résolution
des problèmes de clustering, simple et rapide ;
• Pour le traitement de grands ensembles de
données, l’algorithme conserve son évolutivité et
son efficacité ;
• Lorsque les données suivent une distribution
gaussienne, son effet est meilleur.
Comment fonctionne K Means

• L’algorithme K-means identifie un certain nombre de


centroïdes dans un ensemble de données,
un centroïde étant la moyenne arithmétique de tous les
points de données appartenant à un cluster particulier.
• L’algorithme attribue ensuite chaque point de données au
cluster le plus proche en essayant de maintenir les clusters
aussi petits que possible (le terme « means » dans K-means
fait référence à la tâche consistant à faire la moyenne des
données ou à trouver le centroïde).
• En même temps, K-means tente de garder les autres
clusters aussi différents que possible.
Algorithme de K-means
Algorithme de K-means
Algorithme de K-means
• L’algorithme K-means dépend de:
– Nombre de clusters fixé: K
– La distance choisie : d
Initialisation de « K » centres de
cluster
• L’algorithme K-means commence par
initialiser « K » centres de cluster de façon
aléatoire. (Le nombre K est une variable
d’entrée et les emplacements peuvent
également être donnés en entrée).
Assignation des points à un centre de
cluster
• À chaque passage de l’algorithme, on assigne
chaque point à son centre de cluster le plus
proche.
Mise à jour des centres de cluster
• Les centres des clusters sont ensuite mis à jour
pour être les « centres » de tous les points qui
lui sont assignés dans ce passage. Cela se fait
en recalculant les centres de cluster comme la
moyenne des points dans chaque cluster
respectif.
Répétition de l’algorithme kmeans
• L’algorithme se répète jusqu’à ce qu’il y ait un
changement minimum des centres de cluster
par rapport à la dernière itération.
Avantages
• Facile à comprendre et à implémenter
• Paramètre unique : valeur souhaitée pour le
nombre de classes k
• Faible complexité moyenne : O(t.k.N.d) avec :
– t : Nombre d’itérations
– K : Nombre de classes
– N : Nombre d’observations
– d: Dimension des observations (nombre de
variables)
Les limites de KMeans
• Malgré ses nombreux avantages, K-Means
montre certaines limites, à savoir :
• On ne peut l’utiliser que lorsque l’on peut définir
la valeur moyenne du cluster, ce qui peut ne pas
convenir à certaines applications ;
• Dans l’algorithme K-means, on donne K à
l’avance, et le choix de cette valeur K est très
difficile à estimer. Souvent, on ne sait pas à
l’avance en combien de catégories on doit diviser
un ensemble de données donné;
Les limites de KMeans
• Lorsque l’on veut appliquer l’algorithme K-means, il est d’abord
nécessaire de déterminer une partition initiale basée sur le centre
de regroupement initial, puis d’optimiser la partition initiale. La
sélection de ce centre de clustering initial a un impact plus
important sur les résultats du clustering. Si l’on ne sélectionne pas
bien la valeur initiale, on risque de ne pas obtenir de résultats de
clustering efficaces ;
• L’algorithme doit continuellement ajuster la classification de
l’échantillon et calculer continuellement les nouveaux centres de
cluster ajustés. Par conséquent, lorsque la quantité de données est
très grande, le coût en temps de l’algorithme est très grand ;
• Si le cluster contient des points anormaux, la valeur moyenne
déviera sérieusement
• Ne conviens pas à la découverte de clusters de formes non
convexes ou de clusters de tailles très différentes.
Un peu de code
• https://domino.ai/blog/getting-started-with-
k-means-clustering-in-python
Exemple
• A={1,2,3,6,7,8,13,15,17}. Créer 3 clusters à partir de A

• On prend 3 objets au hasard. Supposons que c’est 1, 2 et 3. Ca


donne C1={1}, M1=1, C2={2}, M2=2, C3={3} et M3=3

• Chaque objet O est affecté au cluster au milieu duquel, O est le


plus proche. 6 est affecté à C3 car dist(M3,6)<dist(M2,6) et
dist(M3,6)<dist(M1,6)
On a C1={1}, M1=1,
C2={2}, M2=2
C3={3, 6,7,8,13,15,17}, M3=69/7=9.86
Exemple
• dist(3,M2)<dist(3,M3)3 passe dans C2. Tous les autres objets ne bougent pas.
C1={1}, M1=1, C2={2,3}, M2=2.5,C3={6,7,8,13,15,17} et M3= 66/6=11

• dist(6,M2)<dist(6,M3)6 passe dans C2. Tous les autres objets ne bougent pas.
C1={1}, M1=1, C2={2,3,6}, M2=11/3=3.67, C3={7,8,13,15,17}, M3= 12

• dist(2,M1)<dist(2,M2)2 passe en C1. dist(7,M2)<dist(7,M3) 7 passe en C2. Les


autres ne bougent pas. C1={1,2}, M1=1.5, C2={3,6,7}, M2=5.34, C3= {8,13,15,17},
M3=13.25

• dist(3,M1)<dist(3,M2)3 passe en 1. dist(8,M2)<dist(8,M3)8 passe en 2


C1={1,2,3}, M1=2, C2={6,7,8}, M2=7, C3={13,15,17}, M3=15

Plus rien ne bouge


Exemple
10 10

9 9

8 8

7 7

6 6

5 5

4 4

3 3

2 2

1 1

0 0
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10

10 10

9 9

8 8

7 7

6 6

5 5

4 4

3
3
2
2
1
1
0
0
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
Algorithme K-means & Application

Considérons l'ensemble de données suivant, constitué des scores


de deux variables sur chacun des sept individus:

subject A B
1 1,0 1,0
2 1,5 2.0
3 3.0 4.0
4 5.0 7,0
5 3,5 5.0
6 4,5 5.0
7 3,5 4,5
Cet ensemble de données doit être regroupé en deux
groupes. Comme première étape pour trouver une partition
initiale raisonnable, laissez les valeurs A et B des deux individus
les plus éloignés (en utilisant la mesure de distance
euclidienne), définissez la moyenne des grappes initiale en
donnant:
Vecteur
moyen
Individuel
(centroïde
)
Groupe 1 1 (1.0, 1.0)
Groupe 2 4 (5.0, 7.0)
Les individus restants sont maintenant examinés en séquence et attribués au
groupe dans lequel ils sont le plus proches, en termes de distance euclidienne
par rapport à la moyenne du groupe. Le vecteur moyen est recalculé chaque
fois qu'un nouveau membre est ajouté. Cela conduit à la série d'étapes
suivante:
Groupe 1 Groupe 2

Vecteur Vecteur
Étape Individuel moyen Individuel moyen
(centroïde) (centroïde)

1 1 (1.0, 1.0) 4 (5.0, 7.0)

2 1, 2 (1.2, 1.5) 4 (5.0, 7.0)

3 1, 2, 3 (1.8, 2.3) 4 (5.0, 7.0)

4 1, 2, 3 (1.8, 2.3) 4, 5 (4.2, 6.0)

5 1, 2, 3 (1.8, 2.3) 4, 5, 6 (4.3, 5.7)


Maintenant, la partition initiale a changé et les deux clusters à ce
stade présentent les caractéristiques suivantes:

Vecteur moyen
Individuel
(centroïde)
Groupe 1 1, 2, 3 (1.8, 2.3)
Groupe 2 4, 5, 6, 7 (4.1, 5.4)
Mais nous ne pouvons pas encore être sûrs que chaque individu a été assigné au
bon cluster. Nous comparons donc la distance de chaque individu à sa propre
moyenne de cluster et à
celle du cluster opposé. Et nous trouvons:
Distance à la Distance à la
moyenne moyenne
Individuel
(centroïde) du (centroïde) du
groupe 1 groupe 2
1 1,5 5.4
2 0.4 4.3
3 2.1 1.8
4 5.7 1.8
5 3.2 0,7
6 3.8 0.6
7 2.8 1.1
Seul l'individu 3 est plus proche de la moyenne du groupe
opposé (groupe 2) que le sien (groupe 1). En d'autres termes, la
distance de chaque individu à sa propre moyenne de cluster
devrait être inférieure à la distance à la moyenne de l'autre
cluster (ce qui n'est pas le cas avec l'individu 3). Ainsi, l’individu
3 est déplacé vers le cluster 2, ce qui donne la nouvelle partition:

Vecteur
Individuel moyen
(centroïde)
Groupe 1 1, 2 (1.3, 1.5)
Groupe 2 3, 4, 5, 6, 7 (3.9, 5.1)
Exercice
Corrigé de l’exercice

Vous aimerez peut-être aussi