¿Qué haces cuando no hay un punto de codo para la agrupación de kmeans?


13

Aprendí que al elegir varios grupos, debe buscar un punto de codo para diferentes valores de K.He trazado los valores de withinss para valores de k del 1 al 10, pero no veo un claro codo. ¿Qué haces en un caso como este?

KMeans problemáticos


2
Existen muchos criterios de agrupamiento, la regla del "codo SS" es solo uno y no el mejor. Prueba otro. Es muy probable que no tenga grupos en sus datos.
ttnphns

@ttnphns ¿De qué habla este otro místico? ¿Cómo puedo no tener clústeres en mis datos? ¿Cómo puedo saber?
Glen

Respuestas:


7

Método equivocado?

Tal vez está utilizando el algoritmo incorrecto para su problema.

Preprocesamiento incorrecto?

K-means es altamente sensible al preprocesamiento. Si un atributo está en una escala mucho más grande que los demás, dominará la salida. Su salida será entonces efectivamente unidimensional

Visualizar resultados

Hagas lo que hagas, debes validar tus resultados por algo que no sea comenzar en un número como SSQ. En cambio, considere la visualización .

La visualización también puede decirle que tal vez solo haya un único clúster en sus datos.


¿Cuáles son algunas buenas opciones de visualización para datos multidimensionales?
Jeremy

1
Depende de tus datos. Algunos datos se pueden proyectar bien, porque tiene una dimensionalidad intrínseca mucho más baja. Las series temporales se pueden trazar fácilmente, y si sus datos son una imagen serializada, ¿se visualizan como imágenes? De cualquier manera, la visualización depende de sus datos, nunca habrá una solución única para todos.
HA SALIDO - Anony-Mousse

3

Una forma es inspeccionar manualmente los miembros en sus grupos para una k específica para ver si las agrupaciones tienen sentido (¿son distinguibles?). Esto se puede hacer a través de tablas de contingencia y medios condicionales. Haga esto para una variedad de k y puede determinar qué valor es apropiado.

Una forma menos subjetiva es usar el valor de silueta:

/programming/18285434/how-do-i-choose-k-when-using-k-means-clustering-with-silhouette-function

Esto se puede calcular con su paquete de software favorito. Desde el enlace:

Este método solo compara la similitud intragrupo con la similitud del grupo más cercano. Si la distancia promedio de cualquier miembro de datos a otros miembros del mismo grupo es mayor que la distancia promedio a otros miembros del grupo, entonces este valor es negativo y la agrupación no es exitosa. Por otro lado, los valores de silhuette cercanos a 1 indican una operación de agrupamiento exitosa. 0.5 no es una medida exacta para la agrupación.


Glen, personalmente creo que tu respuesta es incompleta. El primer párrafo parece poco claro. ¿Qué es esa "inspección manual"? ¿Puede describir el procedimiento por favor? Entonces, ¿Silhouette es "menos subjetivo" que qué ? ¿Y por qué?
ttnphns

@ttnphns respuesta actualizada.
Glen

contingency tables and conditional meansEsto es más místico. ¿Qué debo hacer con ellos para llegar "subjetivamente" a una buena k?
ttnphns

@ttnphns Si el póster tiene una pregunta al respecto, haré un seguimiento. Como dije, debe verificar si las agrupaciones son distinguibles. Me parece claro.
Glen

Entonces, si obtengo valores bajos de silueta (~ .35), ¿podría indicar que estos datos realmente no tienen buenos grupos?
Jeremy

0
  • Sin codo para K-means no significa que no haya grupos en los datos;
  • Sin codo significa que el algoritmo utilizado no puede separar grupos; (piense en K-medias para círculos concéntricos, vs DBSCAN)

En general, puede considerar:

  • afina tu algoritmo;
  • usa otro algoritmo;
  • hacer preprocesamiento de datos.

-1

Podemos usar el paquete NbClust para encontrar el valor más óptimo de k. Proporciona 30 índices para determinar el número de grupos y propone el mejor resultado.

NbClust (data = df, distance = "euclidean", min.nc = 2, max.nc = 15, method = "kmeans", index = "all")


Bienvenido al sitio! ¿Podría ampliar esta respuesta? Si bien es útil, un poco más de detalle lo haría más útil.
mkt - Restablecer Monica
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.