INDICE SILUETA Miguel Cárdenas-Montes Las técnicas de aprendizaje no supervisado permiten agrupar datos en función de su similaridad. Paralelamente, existen índices que evalúan cómo de separables son las agrupaciones producidas por los algoritmos de aprendizaje no supervisado. El índice de silueta es uno de ellos, siendo frecuentemente utilizado en publicaciones científicas. Objetivos: Conocer el uso práctico del índice de silueta para evaluar la separación de clústeres formados con técnicas como k-means o DBScan, permitiendo obtener el número óptimo de clústeres. 1 Este documento puede contener imprecisiones o errores. Por favor no lo utilice para citarlo como una fuente fiable. Indice de Silueta El índice de silueta es una métrica para evaluar el buen funcionamiento de los algoritmos de aprendizaje no supervisado. El objetivo de este índice es identificar el número óptimo de agrupamientos. En los algoritmos de aprendizaje no supervisado, el número de clústeres puede ser un parámetro de entrada del algoritmo (Kmeans) o determinado automáticamente por el algoritmo (DBSCAN). En el primer caso la determinación del número óptimo de clústeres tiene que ser realizado mediante alguna medida externa al algoritmo. El índice silueta es indicador del número ideal de clústeres 1 2 . Un valor más alto de este índice indica un caso más deseable del número de clústeres. El coeficiente de Silueta para un conjunto está dato como la media del coeficiente de Silueta de cada objeto de la muestra, s(i ). El coeficiente de Silueta para un objeto es: s (i ) = b−a max ( a, b) (1) donde: a es la distancia media entre el objeto y todos los otros objetos de la misma clase, y b es la distancia media entre el objeto y todos los otros objetos del clúster más próximo. El valor de s(i ) puede ser obtenido combinando los valores de a(i ) y b(i ) como se muestra a continuación: a (i ) 1 − b(i) , if a(i ) < b(i ) s(i ) = 0, if a(i ) = b(i ) b (i ) − 1, if a(i ) > b(i ) a (i ) 1 Peter J. Rousseeuw. Silhouettes: A graphical aid to the interpretation and validation of cluster analysis. Journal of Computational and Applied Mathematics, 20(0):53 – 65, 1987. ISSN 0377-0427. http://dx.doi.org/10.1016/03770427(87)90125-7 2 Ujjwal Maulik, Sanghamitra Bandyopadhyay, and Anirban Mukhopadhyay. Multiobjective Genetic Algorithms for Clustering - Applications in Data Mining and Bioinformatics. Springer, 2011. ISBN 978-3-642-16614-3. 10.1007/978-3-642-16615-0. URL d o i : d o i : http://dx.doi.org/10.1007/978-3-642-16615-0 2 m m Recetario para valores del índice: 0.71-1.0, las estructuras encontradas son sólidas. 0.51-0.70, las estructuras encontradas con razonables. 0.26-0.50, las estructuras encontradas con débiles y tienen a ser artificiales. Se deberían intentar métodos alternativos para el análisis de los datos. <0.25, no se encuentran estructuras. Raw points with errorbars 4.0 De la definición anterior se obtiene que el índice silueta es: −1 ≤ s(i ) ≤ 1. Para que el valor de s(i ) sea próximo a uno entonces a(i ) ≪ b(i ). Como a(i ) es una medida de como de similar es i a su propio cluster, entonces esto implica que el objeto i es muy similar a los otros objetos de su clúster. Además se requiere que b(i ) sea grande. Esto implica que el objeto i no es similar a los objetos del clúster más próximo. Un valor de s(i ) cercano a cero indica que el objeto i está en la frontera de dos clusteres. Por el contrario si el valor de s(i ) es negativo, entonces dicho objeto debería ser asignado al cluster más cercano. El valor promedio de s(i ) sobre todos los datos de un clúster es una media de cómo compactamente agrupados están los datos en el clúster. Así el promedio de s(i ) sobre el conjunto de datos es una medida de cómo de apropiadamente se han agrupado los datos. De forma que si el número de clústeres elegidos es demasiado bajo o alto, entonces el gráfico de silueta será más estrecho que el resto. 2 Representación Gráfica 3.5 3.0 2.5 2.0 1.5 1.0 0.5 0.0 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 Figura 1: Conjunto de datos. En teoría dos clusteres parece el resultado óptimo, aunque no se puede descartar que sean tres. El índice silueta de data objeto del conjunto de datos suele ser dibujados de forma que los que forman el mismo cluster se dibujan juntos y en orden decreciente del valor del índice. De esta forma se producen gráficas como las mostradas en las figuras 2, 3, y4. Estas corresponden son el resultado de analizar los datos (figura 1) mediante el algoritmo Kmeans para 2 centroides (figura 2), 3 centroides (figura 3) y 4 centroides (figura 4). En la figura 2 se muestra el gráfico correspondiente a una elección de 2 centroides en Kmeans. La mayor parte de los puntos tienen un índice superior a 0,6, lo que es un indicador de la alta calidad del agrupamiento. No aparecen valores negativos del índice, lo cual indica que no hay puntos incorrectamente asignados a clústeres. Los puntos bajo valor del índice < 0,6 corresponden con punto que quedan igualmente cerca de los dos centroides. Pero la mayor parte de los puntos del cada cluster tienen un valor muy alto del índice. En la figura 3 se muestra el índice silueta para cada punto cuanto se configura Kmeans con 3 centroides. Como puede apreciarse, los puntos pertenecientes al cluster número 1 tiene un índice silueta muy bajo. En todos sus integrantes el valor es < 0,5. Por lo tanto, cuando se agrupan con 3 centroides, los puntos asignados al cluster número 1 no deberían forman un cluster independiente, sino que estos puntos deberían integrarse en otro cluster. Finalmente en la figura 4, se puede apreciar que ciertos puntos tie- i n d i e s i l u e t a 3 Figura 2: Indice silueta para un agrupamiento de datos con Kmeans y 2 centroides. Cluster 0 1 0.0 0.2 0.4 0.6 Silhouette Value 0.8 1.0 Figura 3: Indice silueta para un agrupamiento de datos con Kmeans y 3 centroides. 0 Cluster 1 2 0.0 0.2 0.4 0.6 Silhouette Value 0.8 1.0 nen índice negativo, luego están asignado incorrectamente a un cluster. Para ellos hay un centroide más próximo que aquel al cual han sido asignados. Esto es un fuerte indicador que 4 centroides es un agrupación artificial para este conjunto de datos. Es interesante destacar en esta figura como los valores más bajos del índice para algunos puntos no son cercanos a cero, sino que tienen valores superiores a 0.2. Figura 4: Indice silueta para un agrupamiento de datos con Kmeans y 4 centroides. 0 Cluster 1 2 3 −0.2 0.0 0.2 0.4 Silhouette Value 0.6 0.8 1.0 Es interesante destacar como los valores máximo de s(i ) van disminuyendo a medida que establecemos un número de centroides no correcto. Los máximos para 2 centroides son claramente superiores a 0.8. 4 m m Referencias [1] Ujjwal Maulik, Sanghamitra Bandyopadhyay, and Anirban Mukhopadhyay. Multiobjective Genetic Algorithms for Clustering - Applications in Data Mining and Bioinformatics. Springer, 2011. ISBN 978-3-642-16614-3. 10.1007/978-3-642-16615-0. URL http://dx.doi.org/10.1007/978-3-642-16615-0. d o i : [2] Peter J. Rousseeuw. Silhouettes: A graphical aid to the interpretation and validation of cluster analysis. Journal of Computational and Applied Mathematics, 20(0):53 – 65, 1987. ISSN 0377-0427. http://dx.doi.org/10.1016/0377-0427(87)90125-7. d o i :