Clase 6: Evaluación de Clusters
Pensemos en la Evaluación como una medida de desempeño el cuál “evalúa” qué tan bien realizado está el clustering. El objetivo principal del Clustering debe ser siempre la generación de
clusters compactos
que esténdiferenciados
los unos a los otros.
Permite evaluar
a priori
si es que efectivamente existen clustersantes de aplicar
un algoritmo.
\[H = \frac{\sum_{i = 1}^p w_i}{\sum_{i = 1}^p u_i + \sum_{i = 1}^p w_i}\]
\[u_1\approx 0\]
\[u_2\approx 0\]
\[w_1\approx 1.8\]
\[w_2\approx 1.12\]
\[ H = \frac{w_1 + w_2}{u_1 + u_2 + w_1 + w_2}\] \[ H = \frac{1.8 + 1.12}{0 + 0 + 1.8 + 1.8} = 1\]
Corresponde a una inspección visual de la distancia entre los puntos (matriz de distancia). Colores más oscuros indican menor distancias entre dichos puntos lo que indica mayor cohesión.
\[s(i,j) = \frac{1}{d(i,j) + 1}\]
Construir una matriz de similaridad "ideal"
basada en la pertenencia a un Cluster.
Si \(i\) y \(j\) pertenecen al mismo cluster entonces \(s(i,j)=1\), en otro caso \(s(i,j) = 0\)
Calcular la Correlación entre la matriz de similaridad y la matriz ideal (obtenidas en los pasos 1 y 2).
Una correlación alta indica que los puntos que están en el mismo cluster son cercanos entre ellos.
Mide cuán cercanos están los objetos dentro de un mismo cluster. Se utiliza la Suma de los Errores al Cuadrado, que es equivalente a la Inercia de K-Means (o Within Cluster).
\[ SSE_{total} = \sum_{k = 1}^K\sum_{x_i \in C_k} (x_i - \bar{C_k})^2\]
inverso de la Cohesión
.Mide cuán distinto es un cluster de otro. Se usa la suma de las distancias al cuadrado entre los centroides hacia el promedio de todos los puntos. (Between groups sum squares, SSB).
\[ SSB_{total} = \sum_{k = 1}^K |C_k|(\bar{X} - \bar{C_k})^2\]
El coeficiente de Silhouette es otra medida que combina la cohesión y la separación. Los valores varían entre -1 y 1, donde valores cercanos a 1 representan una mejor agrupación.
Valores cercanos a \(-1\) representan que el punto está incorrectamente asignado a un cluster.
\[S_i = \frac{b_i - a_i}{max\{a_i, b_i\}}\]
\[C_{silueta} = \frac{1}{n}\sum_{i} s_i\]
otros
puntos del mismo cluster. (Cohesión)Ejercicio Propuesto
Calcule el coeficiente de Silueta. Tabla de resultado al final de las Slides.
Es común mostrar los resultados del coeficiente de silueta como gráficos de este estilo:
Problemas
import scikitplot as skplt
import matplotlib.pyplot as plt
skplt.metrics.plot_silhouette(X, labels, metric="euclidean", title="Silhouette Analysis")
plt.show()
L1-2: Importación de Librerías Necesarias. Esta implementación está en la librería Scikit-plot. (Para instalar pip install scikit-plot
)
X: Dataset usado para el clustering.
labels : etiquetas obtenidos de algún proceso de Clustering.
metric: Métrica a utilizar, por defecto usa “euclidean”.
title: Se puede agregar un Título personalizado a la curva.
Coeficiente de Silhouette = 0.6148
Comprobar utilizando Scikit-Learn