I han establecido de los datos (de 5000 puntos con 4 dimensiones) que he agruparon utilizando kmeans en R.pedidos puntos agruparon utilizando Kmeans y R
Quiero ordenar los puntos de cada grupo por su distancia a el centro de ese grupo.
Muy simplemente, los datos se parece a esto (estoy usando un subconjunto de poner a prueba diversos enfoques):
id Ans Acc Que Kudos
1 100 100 100 100
2 85 83 80 75
3 69 65 30 29
4 41 45 30 22
5 10 12 18 16
6 10 13 10 9
7 10 16 16 19
8 65 68 100 100
9 36 30 35 29
10 36 30 26 22
En primer lugar, he utilizado el siguiente método para agrupar el conjunto de datos en 2 grupos:
(result <- kmeans(data, 2))
Esto devuelve un objeto kmeans que tiene la siguiente methods: cluster, centers etc.
Pero Canno t averiguar cómo comparar cada punto y producir una lista ordenada.
En segundo lugar, he intentado el enfoque seriación como se sugiere por otro usuario SO here
que utilizan estos comandos:
clus <- kmeans(scale(x, scale = FALSE), centers = 3, iter.max = 50, nstart = 10)
mns <- sapply(split(x, clus$cluster), function(x) mean(unlist(x)))
result <- dat[order(order(mns)[clus$cluster]), ]
que parece producir una lista ordenada pero si me ato a la etiqueta grupos (utilizando el siguiente comando cbind):
result <- cbind(x[order(order(mns)[clus$cluster]), ],clus$cluster)
me sale el siguiente resultado, que no parece ser el fin ed correctamente:
id Ans Acc Que Kudos clus
1 3 69 65 30 29 1
2 4 41 45 30 22 1
3 5 10 12 18 16 2
4 6 10 13 10 9 2
5 7 10 16 16 19 2
6 9 36 30 35 29 2
7 10 36 30 26 22 2
8 1 100 100 100 100 1
9 2 85 83 80 75 2
10 8 65 68 100 100 2
No quiero escribir comandos de todas maneras, pero entiendo cómo funciona el enfoque. Si alguien pudiera ayudar o difundir algo de luz sobre esto, sería realmente grandioso.
EDITAR :::::::::::
A medida que los grupos se pueden trazar fácilmente, me imagino que hay una manera más fácil de obtener y clasificar las distancias entre puntos y el centro.
Los centros para los clústeres anteriores (cuando se usa k = 2) son los siguientes. Pero no sé cómo obtener y comparar esto con cada punto individual.
Ans Accep Que Kudos
1 83.33333 83.66667 93.33333 91.66667
2 30.28571 30.14286 23.57143 20.85714
NB ::::::::
no necesito superiores kmeans uso pero quiero especificar el número de racimos y recuperar una lista ordenada de puntos de esos grupos.
Esta es una buena pregunta ... y comprueba que no está utilizando el ID a agruparse (supongo que hay casos en que es posible que desee, pero es poco probable) – Seth
fresca, yo no quiero agrupar los identificadores, supervisión en mi nombre. Enmendaré la pregunta. gracias ... – slotishtype
Creo que 'kmeans()' también devuelve los centros de clúster finales.A partir de ahí, no debería ser demasiado difícil calcular la distancia desde cada punto hasta el centro de su grupo. –