J'utilisais l' kmeans
instruction de R pour effectuer l'algorithme k-means sur l'ensemble de données iris d'Anderson. J'ai une question sur certains paramètres que j'ai obtenus. Les résultats sont:
Cluster means:
Sepal.Length Sepal.Width Petal.Length Petal.Width
1 5.006000 3.428000 1.462000 0.246000
Dans ce cas, que signifie "Cluster"? Est-ce la moyenne des distances de tous les objets du cluster?
Dans la dernière partie, j'ai également:
Within cluster sum of squares by cluster:
[1] 15.15100 39.82097 23.87947
(between_SS / total_SS = 88.4 %)
Cette valeur de 88,4%, quelle pourrait être son interprétation?
Réponses:
Si vous calculez la somme des distances au carré de chaque point de données à la moyenne de l'échantillon global, vous obtenez
total_SS
. Si, au lieu de calculer une moyenne globale d'échantillon (ou `` centroïde ''), vous calculez un par groupe (ici, il y a trois groupes), puis calculez la somme des distances au carré de ces trois moyennes à la moyenne globale, vous obtenezbetween_SS
. (Lors du calcul, vous multipliez la distance au carré de chaque moyenne à la moyenne globale par le nombre de points de données qu'elle représente.)S'il n'y avait pas de modèle discernable de regroupement, les trois moyennes des trois groupes seraient proches de la moyenne mondiale et
between_SS
constitueraient une très petite fraction detotal_SS
. L'inverse est vrai ici, ce qui montre que les points de données se regroupent assez nettement dans un espace à quatre dimensions selon les espèces.la source
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:
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 .
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 étape, la somme des distances diminue; il y a un nombre fini de combinaisons, donc l'algorithme doit se terminer à un minimum local.
la source