Índice de silueta: índice de validez de clúster | conjunto 2

Requisito previo: índice de Dunn e índice de base de datos: índices de validez de clúster

Se aplican muchos algoritmos interesantes para analizar conjuntos de datos muy grandes. La mayoría de los algoritmos no proporcionan ningún medio para su validación y evaluación. Por lo tanto, es muy difícil concluir cuáles son los mejores clústeres y deben tomarse para el análisis.

Hay varios índices para predecir clústeres óptimos:

  1. Índice de silueta
  2. Índice de Dunn
  3. Índice de base de datos
  4. Índice CS
  5. I-Índice
  6. Índice XB o Xie Beni

Ahora, analicemos el índice de validez de clúster interno Índice de silueta .

Índice de silueta –

El análisis de silueta se refiere a un método de interpretación y validación de la consistencia dentro de grupos de datos. El valor de la silueta es una medida de cuán similar es un objeto a su propio grupo (cohesión) en comparación con otros grupos (separación). Se puede utilizar para estudiar la distancia de separación entre los grupos resultantes. El gráfico de silueta muestra una medida de qué tan cerca está cada punto en un grupo de puntos en los grupos vecinos y, por lo tanto, proporciona una forma de evaluar parámetros como el número de grupos visualmente.

¿Cómo funciona el análisis de silueta?

La técnica de validación de Silhouette calcula el índice de silueta para cada muestra, el índice de silueta promedio para cada grupo y el índice de silueta promedio general para un conjunto de datos. Usando el enfoque, cada grupo podría representarse mediante el índice de silueta, que se basa en la comparación de su estanqueidad y separación.

Cálculo del valor de silueta:
si el valor del índice de silueta es alto, el objeto se corresponde bien con su propio grupo y no se corresponde con los grupos vecinos. El coeficiente de silueta se calcula utilizando la distancia media dentro del grupo (a) y la distancia media del grupo más cercano (b) para cada muestra. El coeficiente de silueta se define como:

S(i) = ( b(i) – a(i) ) / ( máx { ( a(i), b(i) ) }

Dónde,

  • a(i) es la disimilitud promedio del i -ésimo objeto con todos los demás objetos en el mismo grupo
  • b(i) es la disimilitud promedio del i -ésimo objeto con todos los objetos en el grupo más cercano.

Rango de valor de silueta –

Ahora, obviamente S(i) estará entre [-1, 1]

  1. Si el valor de la silueta es cercano a 1, la muestra está bien agrupada y ya asignada a un grupo muy apropiado.
  2. Si el valor de la silueta es aproximadamente 0, la muestra podría asignarse a otro conglomerado más cercano y la muestra se encuentra igualmente alejada de ambos conglomerados. Eso significa que indica grupos superpuestos
  3. Si el valor de la silueta está cerca de -1, la muestra se clasifica incorrectamente y simplemente se coloca en algún lugar entre los grupos.

A continuación se muestra la implementación de Python del índice de silueta anterior:

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
  
# Generating the sample data from make_blobs
  
X, Y = make_blobs()  
  
no_of_clusters = [2, 3, 4, 5, 6]
  
for n_clusters in no_of_clusters:
  
    cluster = KMeans(n_clusters = n_clusters)
    cluster_labels = cluster.fit_predict(X)
  
    # The silhouette_score gives the 
    # average value for all the samples.
    silhouette_avg = silhouette_score(X, cluster_labels)
  
    print("For no of clusters =", n_clusters,
          " The average silhouette_score is :", silhouette_avg)

Producción:

For no of clusters = 2  The average silhouette_score is : 0.7722709127556407
For no of clusters = 3  The average silhouette_score is : 0.8307470737845413
For no of clusters = 4  The average silhouette_score is : 0.6782013483149748
For no of clusters = 5  The average silhouette_score is : 0.5220013897800627
For no of clusters = 6  The average silhouette_score is : 0.3453103523071251

Referencias:
https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_iris.html
https://en.wikipedia.org/wiki/Silhouette_(clustering)

Publicación traducida automáticamente

Artículo escrito por soumya7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *