Clustering

The slides are available here!

En aprendizaje no supervisado, no hay una variable objetivo \(Y\) etiquetada que queramos predecir. El objetivo es descubrir estructuras en los datos, como grupos (clusters), patrones o regularidades. Esto difiere del aprendizaje supervisado, donde sí conocemos las etiquetas \((\mathbf{X}_i, Y_i)\) y buscamos una función \(f\) que prediga \(Y\) a partir de \(\mathbf{X}\).

Aprendizaje supervisado vs. no supervisado
El aprendizaje non supervisado es mas complejo y menos performante que el supervisado.


Clustering: Principio

¿Por qué clústeres?

  • Topic modeling: agrupar documentos o comentarios según su tema.
  • Análisis de sentimientos: reagrupar comentarios de usuarios para descubrir críticas comunes o elogios.
  • Segmentación de clientes: en marketing, agrupar clientes con comportamientos similares.
  • Eficiencia: entrenar submodelos especializados en cada clúster de datos.

Ambigüedad

Distintas particiones pueden ser igualmente válidas:

Distintas clusterizaciones posibles
Distintas clusterizaciones posibles por una misma

No siempre hay una sola respuesta a “cómo” agrupar.

Objetivo intuitivo

Disminuir la distancia intra-cluster (los puntos de un mismo grupo están juntos) y aumentar la distancia inter-cluster (grupos lejos entre sí):

Inter/intra distancias
Buscamos que los puntos de un mismo clúster estén cerca, y los distintos clústeres lejos.


K-means

Idea general

Separar los datos en \(K\) grupos usando “centroides” (medias de cada clúster):

K-means ejemplo simple
Los centroides se ajustan iterando la asignación de puntos y recálculo de medias.

Minimizar la SSE (Sum of Squared Errors)

K-means particiona los datos \(\Xb_i\) en \(K\) clústeres \(\{\mathcal{C}_1,\dots,\mathcal{C}_K\}\) para minimizar:

\[ G(\mathcal{C}_1,\dots,\mathcal{C}_K) = \sum_{k=1}^K \sum_{i\in\mathcal{C}_k} \|\Xb_i - \mu_k\|^2, \]

donde \(\mu_k\) es el centroide del clúster \(k\). Cada punto se asigna al \(\mu_k\) más cercano en norma Euclídea.

Algoritmo iterativo

  1. Asignación: Conociendo los centroides \(\mu_k\), cada punto se asigna al más cercano.
  2. Actualización: Conociendo la asignación, se recalculan los centroides \(\mu_k\) como la media de los puntos en cada clúster.
  3. Se repite hasta que la inercia (SSE) deje de disminuir significativamente.

Paso de asignación y actualización

Dependencia de la inicialización

Es un problema no convexo, por lo que su solución depende de la semilla inicial:

Distintas inicializaciones llevan a diferentes soluciones
Una primera inicializacion da un primer resultado.
Otra inicialización distinta
Una otra inicializacion da un otro resultado

Solución: ejecutar K-means varias veces y elegir la partición con menor SSE.

Elección de \(K\)

El número de clústeres debe fijarse antes. Se puede explorar varios valores y usar el método del codo (elbow method):

Elbow method en K-means
El codo indica un buen trade-off: no reduce mucho más la varianza al aumentar K.


DBSCAN

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) busca regiones densas y marca los puntos dispersos como ruido.

Ejemplo

DBSCAN puede eliminar ruido
DBSCAN puede reconocer clusters y eliminar ruido al mismo tiempo.

Principios

  • Parámetros:
    • \(\texttt{eps} (\varepsilon)\): radio de vecindad.
    • \(\texttt{min\_samples}\): mínimo de puntos para que un punto sea núcleo (core).
  • Clasifica en core, border, noise:
    • Core: al menos \(\texttt{min\_samples}\) puntos en su vecindad.
    • Border: no llega a ese umbral, pero está dentro del vecindario de un core.
    • Noise: no pertenece a core ni al vecindario de un core.

Puntos Core, Border, Noise
Principio de DBSCAN: Puntos Core, Border, Noise

Ventajas y Desventajas

Ventajas:

  • Detecta formas arbitrarias (no sólo esferas).
  • Identifica outliers (ruido).
  • Menos parámetros que métodos jerárquicos.

Desventajas:

  • Sensible a \(\texttt{eps}\) y \(\texttt{min\_samples}\).
  • Si la densidad varía drásticamente, un único \(\texttt{eps}\) no es apropiado.
  • Difícil en alta dimensionalidad.

Mal ajuste con eps grande/pequeño
Mal ajuste con eps grande/pequeño
Ruido o clusters?
Ruido o clusters?

Elección de \(\texttt{minPts}\) y \(\varepsilon\)

  • \(\texttt{minPts}\): regla de pulgar \(\texttt{minPts}\ge D+1\) (donde \(D\) = dimensión).
  • \(\varepsilon\): usar gráfico de k-dist y buscar el “codo”.
  • OPTICS es una alternativa más avanzada que ajusta la densidad de forma variable.

Clustering Jerárquico

Bisecting K-means

Bisecting K-means:

  1. Arranca con todos los puntos como un clúster.
  2. Aplica K-means con \(k=2\) (bisect) para dividirlo en 2.
  3. Escoge el clúster con mayor SSE y lo subdivide.
  4. Repite hasta lograr \(K\) clústeres.

Bisecting K-means diagrama

Ventajas: combinan jerarquía y rapidez de K-means.
Algoritmo:

Pseudocódigo de Bisecting K-means


Jerárquico Aglomerativo (HAC)

Otro enfoque jerárquico:

  • Cada punto inicia como un clúster propio.
  • Se fusionan iterativamente los 2 clústeres más cercanos.
  • Se actualiza la distancia con el nuevo clúster.
  • Hasta que quede un solo clúster.

Fusión jerárquica paso a paso
Fusión jerárquica paso a paso

Distancia entre clústeres (Linkage):

Criterios de linkage
Como cuantificar la similitud entre 2 clusters?

Se define la “distancia” entre dos grupos:

  • Single linkage: menor distancia entre pares de puntos (sensibilidad al ruido).
  • Complete linkage: mayor distancia entre pares de puntos.
  • Average linkage: promedio de distancias entre pares (compromiso).
  • Centroid linkage: distancia entre centroides.

HDBSCAN

HDBSCAN: extensión jerárquica de DBSCAN

  • Explora múltiples densidades.
  • No fija un único \(\varepsilon\).
  • Elige subconjuntos estables dentro de la jerarquía de densidad.

Documentación HDBSCAN


Métricas de Validación

A diferencia del aprendizaje supervisado, muchas veces no hay etiquetas para evaluar la calidad de un clustering. Dos enfoques:

  1. Métricas externas (hay etiquetas reales):
    • Homogeneidad, Completeness, V-measure.
    • Rand Index, Fowlkes–Mallows.
    • Mutual Information (MI).
  2. Métricas internas (sólo datos y clústeres):
    • Silhouette (valores entre -1 y 1).
    • SSE (inercia en K-means).

Resumen rápido

  • Homogeneidad: cada clúster contiene sólo puntos de una clase.
  • Completeness: cada clase está contenida en un único clúster.
  • V-measure: media armónica de las dos.
  • Fowlkes–Mallows: ve pares de puntos coincidentes en la etiqueta y en el cluster.
  • Silhouette: cohesión y separación sin usar clases reales.

Otros métodos de clustering

Existen varias alternativas según forma de los clústeres, ruido, densidad variable, etc.

Galería de métodos de clustering

Tabla de referencia (Scikit-learn):

Method NameParametersScalabilityUse CaseGeometry (Metric Used)
K-MeansNumber of clustersVery large n_samples, medium n_clusters with MiniBatch codeGeneral-purpose, even cluster size, flat geometry, not too many clusters, inductiveDistances between points
Affinity PropagationDamping, sample preferenceNot scalable with n_samplesMany clusters, uneven cluster size, non-flat geometry, inductiveGraph distance (e.g., nearest-neighbor graph)
Mean-ShiftBandwidthNot scalable with n_samplesMany clusters, uneven cluster size, non-flat geometry, inductiveDistances between points
Spectral ClusteringNumber of clustersMedium n_samples, small n_clustersFew clusters, even cluster size, non-flat geometry, transductiveGraph distance (e.g., nearest-neighbor graph)
Ward Hierarchical ClusteringNumber of clusters or distance thresholdLarge n_samples and n_clustersMany clusters, possibly connectivity constraints, transductiveDistances between points
Agglomerative ClusteringNumber of clusters or distance threshold, linkage type, distanceLarge n_samples and n_clustersMany clusters, possibly connectivity constraints, non-Euclidean distances, transductiveAny pairwise distance
DBSCANNeighborhood sizeVery large n_samples, medium n_clustersNon-flat geometry, uneven cluster sizes, outlier removal, transductiveDistances between nearest points
HDBSCANMinimum cluster membership, minimum point neighborsLarge n_samples, medium n_clustersNon-flat geometry, uneven cluster sizes, outlier removal, transductive, hierarchical, variable cluster densityDistances between nearest points
OPTICSMinimum cluster membershipVery large n_samples, large n_clustersNon-flat geometry, uneven cluster sizes, variable cluster density, outlier removal, transductiveDistances between points
Gaussian MixturesManyNot scalableFlat geometry, good for density estimation, inductiveMahalanobis distances to centers
BIRCHBranching factor, threshold, optional global clustererLarge n_clusters and n_samplesLarge dataset, outlier removal, data reduction, inductiveEuclidean distance between points
Bisecting K-MeansNumber of clustersVery large n_samples, medium n_clustersGeneral-purpose, even cluster size, flat geometry, no empty clusters, inductive, hierarchicalDistances between points

Más info en: clustering scikit-learn docs


Use-case: BERTopic

BERTopic es una librería que combina embeddings (BERT) + clustering para topic modeling sobre textos.

BERTopic Ejemplo

Puede:

  • Agrupar oraciones/documentos en “temas” usando embeddings.
  • Visualizar la evolución de temas en el tiempo (dynamic topic modeling).
  • Hacer clustering jerárquico en temas descubiertos.

BERTopic docs

Visualización de temas en el tiempo
Permite un tracking dinámico de la evolución de topics. Ademas se puede ver que las palabras las mas importante para cada topic evoluan en el tiempo.


See you in the classroom!