K-means n'est pas un algorithme de clustering basé sur la distance .
K-means recherche la somme minimale d' affectation des carrés , c'est-à-dire qu'il minimise la variance non normalisée (= total_SS
) en attribuant des points aux centres de cluster.
Pour que k-means converge, vous avez besoin de deux conditions:
- la réaffectation des points réduit la somme des carrés
- recalculer la moyenne réduit la somme des carrés
Comme il n'y a qu'un nombre fini de combinaisons, vous ne pouvez pas réduire infiniment cette valeur et l'algorithme doit converger à un moment donné vers un optimum local .
∑je( xje- μj i)2j. Mathématiquement, l'attribution par la plus petite somme de carrés équivaut à l'attribution par la fermeture de la distance euclidienne au carré, qui (si vous perdez les cycles CPU pour le calcul sqrt
) est égale à l'affectation de la distance euclidienne minimale. L' intuition d'attribuer chaque point à la moyenne la plus proche est donc correcte, mais pas ce que fait le problème d'optimisation.
between_SS
est probablement la somme pondérée des carrés entre deux moyennes, pour mesurer dans quelle mesure les centres de cluster sont séparés (note: centres de cluster, il ne compare pas les clusters réels - techniquement, la cellule de cluster Voronoi touche les clusters voisins de la cellule Voronoi).
Notez qu'avec k-means, vous pouvez améliorer la qualité de clustering naïf en augmentant k. La qualité mesurée ici est une valeur mathématique, qui peut ne pas correspondre aux exigences des utilisateurs. L'iris est en fait un assez bon exemple, où k-means converge souvent vers des résultats moins que satisfaisants, même compte tenu des informations externes qu'il devrait y avoir exactement 3 grappes.
Si vous voulez une variation basée sur la distance des k-moyennes , regardez les k-médoïdes . Ici, la convergence est assurée en remplaçant la moyenne par le médoïde:
- Chaque objet est affecté au cluster le plus proche (par une mesure de distance arbitraire)
- Le centre du cluster est mis à jour vers l'objet le plus central du cluster, c'est-à-dire avec la plus petite distance moyenne à tous les autres.
À chaque étape, la somme des distances diminue; il y a un nombre fini de combinaisons, donc l'algorithme doit se terminer à un minimum local.