Estaba usando las kmeans
instrucciones de R para realizar el algoritmo k-means en el conjunto de datos de iris de Anderson. Tengo una pregunta sobre algunos parámetros que obtuve. Los resultados son:
Cluster means:
Sepal.Length Sepal.Width Petal.Length Petal.Width
1 5.006000 3.428000 1.462000 0.246000
En este caso, ¿qué significa "Cluster significa"? ¿Es la media de las distancias de todos los objetos dentro del grupo?
También en la última parte tengo:
Within cluster sum of squares by cluster:
[1] 15.15100 39.82097 23.87947
(between_SS / total_SS = 88.4 %)
Ese valor del 88,4%, ¿cuál podría ser su interpretación?
Respuestas:
Si calcula la suma de las distancias al cuadrado de cada punto de datos a la media global de la muestra, obtendrá
total_SS
. Si, en lugar de calcular una media de muestra global (o 'centroide'), calcula una por grupo (aquí, hay tres grupos) y luego calcula la suma de las distancias al cuadrado de estas tres medias a la media global, obtendrábetween_SS
. (Al calcular esto, multiplica la distancia al cuadrado de cada media a la media global por el número de puntos de datos que representa).Si no hubiera un patrón discernible de agrupamiento, las tres medias de los tres grupos estarían cerca de la media global y
between_SS
serían una fracción muy pequeña detotal_SS
. Lo opuesto es cierto aquí, lo que muestra que los puntos de datos se agrupan perfectamente en un espacio de cuatro dimensiones según la especie.fuente
K-means no es un algoritmo de agrupamiento basado en la distancia .
K-means busca la asignación mínima de suma de cuadrados , es decir, minimiza la varianza no normalizada (=
total_SS
) asignando puntos a los centros de agrupación.Para que k-means converja, necesita dos condiciones:
Como solo hay un número finito de combinaciones, no puede reducir infinitamente este valor y el algoritmo debe converger en algún momento a un óptimo local .
Cada vez que intente cambiar las funciones de asignación, corre el riesgo de que el algoritmo ya no termine, como un perro persiguiendo su propia cola. Esencialmente, ambos pasos tienen que estar de acuerdo con la función objetivo. Sabemos que la media aritmética es la opción óptima con respecto a la suma de cuadrados . Y para el primer paso, podemos calcular para cada media y elegir la que sea mínima. Técnicamente, no hay cálculo de distancia aquí . Matemáticamente, la asignación por la menor suma de cuadrados es igual a la asignación por distancia al cuadrado al cuadrado euclidiana, que (si desperdicia los ciclos de la CPU para la computación ) es igual a la asignación mínima de distancia euclidiana. Entonces la intuición j∑i(xi−μji)2 j
sqrt
de asignar cada punto a la media más cercana es correcto, pero no lo que hace el problema de optimización.between_SS
probablemente es la suma ponderada de los cuadrados entre dos medios, para medir qué tan bien están separados los centros de los conglomerados (nota: centros de conglomerados, no compara los conglomerados reales: técnicamente, la celda de Voronoi del conglomerado toca la celda de Voronoi con conglomerados vecinos).Tenga en cuenta que con k-significa que puede mejorar la calidad de agrupación ingenua aumentando k. La calidad medida aquí es un valor matemático, que puede no coincidir con los requisitos de los usuarios. Iris es en realidad un buen ejemplo, donde k-means a menudo converge a resultados menos que satisfactorios, incluso dada la información externa de que debería haber exactamente 3 grupos.
Si desea una variación de k-medias basada en la distancia , mire k-medoides . Aquí se asegura la convergencia reemplazando la media con el medoide:
En cada paso, la suma de distancias se reduce; hay un número finito de combinaciones, por lo tanto, el algoritmo debe terminar en algún mínimo local.
fuente