La respuesta de Sergey contiene el punto crítico, que es que el coeficiente de silueta cuantifica la calidad de la agrupación lograda, por lo que se debe seleccionar el número de conglomerados que maximice el coeficiente de silueta.
La respuesta larga es que la mejor manera de evaluar los resultados de sus esfuerzos de agrupación es empezar por examinar realmente -inspección humana- las agrupaciones formadas y hacer una determinación basada en la comprensión de lo que representan los datos, lo que representa una agrupación y lo que se pretende conseguir con la agrupación.
Existen numerosos métodos cuantitativos de evaluación de los resultados de la agrupación que deben utilizarse como herramientas, con plena comprensión de las limitaciones. Suelen ser de naturaleza bastante intuitiva y, por tanto, tienen un atractivo natural (como los problemas de agrupación en general).
Ejemplos: masa/radio/densidad de los clusters, cohesión o separación entre clusters, etc. Estos conceptos se combinan a menudo, por ejemplo, la relación entre la separación y la cohesión debe ser grande si la agrupación fue exitosa.
La forma de medir la agrupación depende del tipo de algoritmos de agrupación utilizados. Por ejemplo, la medición de la calidad de un completa La medición de la calidad de un algoritmo de clustering (en el que todos los puntos se colocan en clusters) puede ser muy diferente de la medición de la calidad de un algoritmo de clustering difuso basado en umbrales (en el que algún punto puede quedar sin agrupar como "ruido").
El coeficiente de silueta es una de esas medidas. Funciona de la siguiente manera:
Para cada punto p, encuentre primero la distancia media entre p y todos los demás puntos del mismo clúster (ésta es una medida de cohesión, llámela A). A continuación, halle la distancia media entre p y todos los puntos del conglomerado más cercano (esta es una medida de separación del otro conglomerado más cercano, llámese B). El coeficiente de silueta para p se define como la diferencia entre B y A dividida por la mayor de las dos (max(A,B)).
Evaluamos el coeficiente de agrupación de cada punto y a partir de ahí podemos obtener el coeficiente de agrupación medio "global".
Intuitivamente, estamos tratando de medir el espacio entre los clusters. Si la cohesión de los clusters es buena (A es pequeño) y la separación de los clusters es buena (B es grande), el numerador será grande, etc.
He construido un ejemplo aquí para demostrarlo gráficamente.
En estos gráficos, los mismos datos se representan cinco veces; los colores indican los clusters creados por el clustering de k-means, con k = 1,2,3,4,5. Es decir, he forzado un algoritmo de clustering para dividir los datos en 2 clusters, luego 3, y así sucesivamente, y he coloreado el gráfico en consecuencia.
El gráfico de siluetas muestra que el coeficiente de silueta es mayor cuando k = 3, lo que sugiere que ese es el número óptimo de clusters. En este ejemplo tenemos la suerte de poder visualizar los datos y podríamos estar de acuerdo en que, efectivamente, tres clusters son los que mejor capturan la segmentación de este conjunto de datos.
Si no pudiéramos visualizar los datos, tal vez debido a una mayor dimensionalidad, un gráfico de siluetas seguiría dándonos una sugerencia. Sin embargo, espero que mi respuesta, un tanto prolija, deje claro que esta "sugerencia" podría ser muy insuficiente o simplemente errónea en determinados casos.
0 votos
Para determinar el número de conglomerados, véase el método del árbol de expansión mínima (MST) en software de visualización para agrupamiento .
0 votos
@Learner: ¿La función de silueta está incorporada en alguna biblioteca? Si no es así, ¿podrías publicarla en tu pregunta si no te importa?
0 votos
@Legend: Está disponible en la caja de herramientas de Matlab Statistics.
0 votos
@Learner: Ooops... Pensaba que estabas usando Python :) Gracias por avisar de ello.
1 votos
¡+1 por mostrar el código! Además, dado que la media máxima de su silueta se produce cuando k=2, es posible que desee comprobar si sus datos están agrupados, lo que puede hacerse utilizando la estadística de la brecha (otro enlace ).