Evaluar modelos de clustering puede ser un reto porque no hay etiquetas verdaderas (en aprendizaje no supervisado), pero existen métricas internas y externas que nos ayudan a medir qué tan buenos son los grupos que genera el algoritmo.
✅ ¿Cómo evaluar un modelo de clustering?
🔹 1. Métricas internas
Usadas cuando no hay etiquetas reales. Evalúan la cohesión (qué tan compactos son los clústers) y la separación (qué tan distintos son entre sí).
Métrica¿Qué mide?Valor idealSilhouette ScoreQué tan cerca está cada punto de su propio clúster vs otros.Cerca de 1Davies-Bouldin IndexRatio de dispersión intra-clúster / distancia inter-clúster.Más bajo mejorCalinski-Harabasz IndexVariación entre clústers comparada con la interna.Más alto mejor
🔹 2. Métricas externas
Usadas cuando tienes etiquetas reales (como en benchmarks).
Métrica¿Qué compara?**Adjusted Rand Index (ARI)**Compara similitud entre clústers y etiquetas reales.**Normalized Mutual Information (NMI)**Mide información compartida entre clústers y etiquetas.Fowlkes-Mallows ScoreEvalúa precisión entre pares de puntos.
🔹 3. Visualización
Aunque no es una métrica numérica, visualizar los clústers ayuda a:
- Ver si hay solapamientos o agrupaciones claras.
- Detectar outliers.
- Usar reducción de dimensiones como PCA o t-SNE para representar datos en 2D/3D.
from sklearn.metrics import silhouette_score
score = silhouette_score(X, labels)
print("Silhouette Score:", score)
🧠 Consejo:
Usa Silhouette Score cuando no tienes etiquetas, y si puedes comparar resultados con una verdad conocida, incluye también ARI o NMI.