Asignación de etiquetas de clase a grupos de k-means

10

Tengo una pregunta muy básica sobre la agrupación. Después de haber encontrado k grupos con sus centroides, ¿cómo hago para interpretar las clases de los puntos de datos que he agrupado (asignando etiquetas de clase significativas a cada grupo). No estoy hablando de la validación de los grupos encontrados.

¿Se puede hacer dado un pequeño conjunto etiquetado de puntos de datos, calcular a qué grupo pertenecen estos puntos etiquetados y según el tipo y la cantidad de puntos que recibe cada grupo, decidir la etiqueta? Esto parece bastante obvio, pero no sé qué tan estándar es asignar etiquetas a los clústeres de esta manera.

Para que quede claro, quiero realizar una agrupación no supervisada que no utilice ninguna etiqueta para encontrar primero mis agrupaciones. Luego de haber encontrado los grupos, quiero asignar etiquetas de clase significativas a los grupos basados ​​en las propiedades de algunos puntos de datos de ejemplo.

Riyaz
fuente
No estoy seguro de entender su pregunta: por lo general, cualquier algoritmo k-means debería devolver información sobre la membresía de la clase para cada punto de datos. ¿Estás hablando de puntos de datos reales o nuevas observaciones?
chl
@chi Sospecho que a Riyaz le preocupa encontrar nombres con los que etiquetar los grupos y está hablando a priori de nombrar algunos de los puntos y luego usar algún algoritmo que considere la preponderancia de los puntos nombrados en los grupos para luego nombrar esos grupos.
Glen_b -Reinstalar Monica
2
@Riyaz, ¿podríamos usar la siguiente analogía con el Análisis Factorial para entender su pregunta? A menudo, alguien analizará un conjunto de variables para agruparlas en grupos de variables que parecen `` colgarse '', pero luego el analista debe pensar en la naturaleza de las variables que componen cada grupo con un nombre para / forma de pensar acerca de lo que cada grupo (factor) es . ¿Es eso esencialmente lo que estás haciendo aquí?
gung - Restablece a Monica

Respuestas:

4

Si. Lo que usted propone es completamente estándar y es la forma en que el software estándar k-means funciona automáticamente. En el caso de k-significa que calcula la distancia euclidiana entre cada observación (punto de datos) y cada media del grupo (centroide) y asigna las observaciones al grupo más similar. Luego, la etiqueta del grupo se determina examinando las características promedio de las observaciones clasificadas para el grupo en relación con los promedios de aquellos en relación con los otros grupos.

Tim
fuente
3

Si observa los nombres en su objeto kmeans, notará que hay un objeto "cluster". Contiene las etiquetas de clase ordenadas de la misma manera que sus datos de entrada. Aquí hay un ejemplo simple que une las etiquetas del clúster a sus datos.

x <- data.frame(X=rnorm(100, sd=0.3), Y=rnorm(100, mean=1, sd=0.3))

k <- kmeans(x, 2) 
names(k)
x <- data.frame(x, K=k$cluster)

# You can also directly return the clusters
x <- data.frame(x, K=kmeans(x, 2)$cluster)
Jeffrey Evans
fuente
0

Las etiquetas del clúster pueden basarse en la clase de muestras mayoritarias dentro de un clúster. Pero esto es cierto solo si el número de clústeres es igual al número de clases.

usuario101780
fuente