Interprétation du résultat du clustering k-means dans R

12

J'utilisais l' kmeansinstruction 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?

James
la source
4
Veuillez ne pas traverser le message! stackoverflow.com/q/14524818/429846
Rétablir Monica - G. Simpson
Non, c'est juste la moyenne de tous les objets à l'intérieur du premier cluster (3 au total). Vous pouvez obtenir 88,4% par iris.km $ betweenss / iris.km $ totss
dfhgfh
Lisez n'importe quel article sur k-means . Ensuite, il devrait être évident ce que sont les moyens informatiques ... K-means n'est pas basé sur la distance . Il minimise les écarts aka: "somme des écarts au carré".
A QUIT - Anony-Mousse
Supposons que votre moyenne est 0. Faites le calcul. Vérifiez si l'hypothèse ci-dessus fait une différence. Vivez heureux par la suite. Profit!
mia

Réponses:

23

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 obtenez between_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_SSconstitueraient une très petite fraction de total_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.

F. Tusell
la source
14

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-μjje)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.

A QUIT - Anony-Mousse
la source
point intéressant +1
Cam.Davidson.Pilon
1
Pourquoi n'y a-t-il pas ici de calcul de distance (en km)? Pour calculer la variance, il est nécessaire de calculer la distance de chaque élément à la moyenne, donc il y a clairement un calcul de distance impliqué, n'est-ce pas?
Julian
La variance n'est généralement pas définie en termes de distance, mais comme "valeur attendue de l'écart au carré de la moyenne".
A QUIT - Anony-Mousse