Contenido del curso

- 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étricaRangoPreferenciaMejor uso
Silhouette[-1, 1]Alto (cerca de 1)Clusters de densidad uniforme
Davies–Bouldin[0, ∞)BajoClusters bien separados
Calinski–Harabasz[0, ∞)AltoClusters 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.

AlgoritmoForma de clustersEscalabilidadRuido/outliersNúmero de clusters
K-MeansEsféricos, tamaño similarAlta (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
DBSCANFormas arbitrarias, densidades variablesMedia (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:

  1. ¿Cuál obtiene mejor silhouette score? ¿Y mejor Davies–Bouldin? Interpreta.
  2. ¿Qué algoritmo identifica mejor los outliers? Verifica visualmente con un scatter plot.
  3. ¿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

Métricas de validación interna: silhouette score, índice Davies-Bouldin, índice Calinski-Harabasz. Métricas externas: adjusted Rand index, mutual information. Estrategias para elegir entre K-Means, jerárquico y DBSCAN según forma de datos, escalabilidad y presencia de ruido. Taller práctico comparando los tres algoritmos en datasets sintéticos y reales (segmentación de clientes, filogenético, redes).
Calificación
0 0

No hay comentarios por ahora.