- Evaluación y Selección de Algoritmos de Clustering
Evaluación y Selección de Algoritmos de Clustering
Métricas de validación, comparación práctica y criterios de elección entre K-Means, clustering jerárquico y DBSCAN.
En esta lección abordarás el paso crítico posterior a la ejecución de un clustering: ¿cómo saber si los grupos obtenidos son significativos? Exploraremos las principales métricas de validación interna y externa, y estableceremos una guía para seleccionar el algoritmo adecuado según la naturaleza de los datos. El taller práctico final integra los tres métodos en escenarios reales.
1. Métricas de validación interna
Estas métricas no requieren etiquetas reales. Evalúan la cohesión interna (puntos cercanos dentro del mismo cluster) y la separación entre clusters. Son ideales para exploración.
Silhouette Score
Mide cuán similar es un punto a su propio cluster comparado con los otros. Su valor oscila entre -1 y 1: valores cercanos a 1 indican clusters densos y bien separados; valores negativos sugieren asignaciones incorrectas. Se calcula como la media del coeficiente para cada muestra.
Índice Davies–Bouldin
Compara la distancia entre clusters con el tamaño (dispersión) de los mismos. Menor valor implica mejor separación. Es útil cuando los clusters tienen densidades similares. Su sensibilidad a outliers es moderada.
Índice Calinski–Harabasz
También conocido como criterio de la relación de varianza. Basado en la relación entre la dispersión entre clusters y la dispersión intra-cluster. Un valor más alto indica clusters más densos y separados. Funciona mejor con clusters esféricos y de tamaño similar.
| Métrica | Rango | Preferencia | Mejor uso |
|---|---|---|---|
| Silhouette | [-1, 1] | Alto (cerca de 1) | Clusters de densidad uniforme |
| Davies–Bouldin | [0, ∞) | Bajo | Clusters bien separados |
| Calinski–Harabasz | [0, ∞) | Alto | Clusters esféricos, tamaño similar |
2. Métricas de validación externa
Se utilizan cuando se dispone de una verdad fundamental (etiquetas reales). Miden la concordancia entre el clustering obtenido y la partición de referencia.
Adjusted Rand Index (ARI)
Versión corregida por azar del índice de Rand. Considera pares de puntos y evalúa si son agrupados de forma similar en ambas particiones. Rango de -1 a 1, siendo 1 la concordancia perfecta. Es una de las métricas externas más robustas.
Mutual Information (MI y NMI)
Mide la reducción de incertidumbre sobre las etiquetas reales dado el clustering. La Mutual Information Normalizada (NMI) ajusta el valor entre 0 y 1. Sensible al tamaño de los clusters, pero ampliamente usada en aprendizaje no supervisado.
💡 Recomendación práctica: Para validación externa, utiliza ARI cuando las particiones tengan tamaños muy dispares; emplea NMI si te interesa la homogeneidad basada en entropía.
3. Estrategias de selección: K-Means, Jerárquico y DBSCAN
No existe un algoritmo universal. La elección depende de tres factores clave: forma de los datos, escalabilidad y presencia de ruido/outliers.
| Algoritmo | Forma de clusters | Escalabilidad | Ruido/outliers | Número de clusters |
|---|---|---|---|---|
| K-Means | Esféricos, tamaño similar | Alta (O(n·k·d)) | Sensible (media desplazada) | Debe fijarse k |
| Jerárquico (aglomerativo) | Formas variadas (con linkage adecuado) | Media-baja (O(n² log n) o O(n³)) | Moderado (depende del linkage) | Se define por corte del dendrograma |
| DBSCAN | Formas arbitrarias, densidades variables | Media (O(n log n) con índices) | Robusto (etiqueta ruido) | Automático (eps/minPts) |
Pautas rápidas
- Datos con ruido y formas irregulares: DBSCAN (o HDBSCAN). Ej: detección de anomalías, datos geográficos.
- Grandes volúmenes (>100k puntos) y clusters esféricos: K-Means (con cuidado de outliers).
- Necesitas jerarquía interpretable: clustering jerárquico (dendrograma). Ideal para datos filogenéticos o taxonomías.
- Desconoces el número de clusters: DBSCAN o jerárquico + corte por silhouette.
4. Taller práctico: Comparando los tres algoritmos
En este taller aplicarás K-Means, clustering jerárquico y DBSCAN sobre tres conjuntos de datos representativos. Evaluaremos con métricas internas (silhouette, Davies–Bouldin) y externas (ARI, NMI) cuando haya etiquetas reales.
📂 Dataset 1: Segmentación de clientes (sintético + real)
Características: Ingreso anual, puntuación de gasto, frecuencia de compra. Clusters elípticos con outliers leves.
Algoritmo recomendado: DBSCAN (por la presencia de outliers) y K-Means como baseline.
Métrica clave: Silhouette score + Davies–Bouldin.
🧬 Dataset 2: Filogenético (secuencias de ADN simuladas)
Datos de distancia genética entre especies. Se espera una estructura jerárquica natural.
Algoritmo recomendado: Jerárquico aglomerativo (linkage promedio o Ward).
Evaluación: Comparación de dendrogramas con el árbol filogenético real (ARI si se definen grupos).
🌐 Dataset 3: Red social (comunidades, escala media)
Grafo de amistades simulado con 5 comunidades densas y ruido disperso.
Algoritmo recomendado: DBSCAN (basado en métrica de distancia en el grafo) o K-Means sobre embeddings (Node2vec).
Métrica externa: Adjusted Rand Index con comunidades reales.
5. Ejemplo de código: Evaluación comparativa
El siguiente snippet muestra cómo calcular silhouette, Davies–Bouldin y Calinski–Harabasz para un clustering dado. Se usa sklearn.metrics.
from sklearn.cluster import KMeans, DBSCAN
from sklearn.metrics import silhouette_score, davies_bouldin_score, calinski_harabasz_score
import numpy as np
# Datos sintéticos (X)
X = np.random.randn(300, 2)
# K-Means
kmeans = KMeans(n_clusters=4, random_state=42).fit(X)
labels_k = kmeans.labels_
# DBSCAN
dbscan = DBSCAN(eps=0.3, min_samples=5).fit(X)
labels_db = dbscan.labels_
# Métricas internas (solo puntos etiquetados, excluir ruido -1)
mask = labels_db != -1
sil_db = silhouette_score(X[mask], labels_db[mask])
db_db = davies_bouldin_score(X[mask], labels_db[mask])
ch_db = calinski_harabasz_score(X[mask], labels_db[mask])
print(f"K-Means silhouette: {silhouette_score(X, labels_k):.3f}")
print(f"DBSCAN sil (sin ruido): {sil_db:.3f}, DB: {db_db:.3f}, CH: {ch_db:.3f}")
⚠️ Nota sobre DBSCAN: El ruido (etiqueta -1) debe excluirse de las métricas internas, ya que silhouette y otras requieren al menos 2 clusters y no manejan puntos no asignados.
6. Ejercicio integrador
Utilizando el dataset de clientes (segmentación), genera clusters con los tres algoritmos. Responde:
- ¿Cuál obtiene mejor silhouette score? ¿Y mejor Davies–Bouldin? Interpreta.
- ¿Qué algoritmo identifica mejor los outliers? Verifica visualmente con un scatter plot.
- ¿Qué estrategia de selección usarías si el dataset creciera a 500k registros?
🎯 Objetivo: Elegir el algoritmo óptimo basándote en métricas cuantitativas y en la naturaleza del problema.
Odisea Algorítmica — Lección: Evaluación y Selección de Clustering
No hay comentarios por ahora.
Compartir este contenido
Compartir enlace
Compartir en redes sociales
Compartir por correo electrónico
Please iniciar sesión para compartir esto Artículo por correo electrónico.