10  Métodos de Agrupamiento (Clustering): Algoritmos Basados en Centros y Jerárquicos

10.1 Fundamentos del Aprendizaje No Supervisado y Agrupamiento

En el ecosistema del Descubrimiento de Conocimiento en Bases de Datos (KDD) y la minería de datos, el agrupamiento (clustering) constituye la técnica fundamental del aprendizaje no supervisado (Tan et al. 2019; Provost and Fawcett 2013). A diferencia del aprendizaje supervisado (donde se busca predecir un atributo objetivo \(Y\) previamente etiquetado), el agrupamiento opera en ausencia de una variable respuesta previa (Shmueli et al. 2018). Su propósito analítico es descubrir la estructura latente o la organización natural intrínseca contenida en un conjunto de datos \(X = \{\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_n\} \subset \mathbb{R}^p\) (Tan et al. 2019).

Desde una perspectiva matemática y geométrica, el agrupamiento particiona el conjunto de datos en \(K\) subgrupos o segmentos constitutivos \(C = \{C_1, C_2, \dots, C_K\}\) cumpliendo dos postulados centrales (Tan et al. 2019; Johnson and Wichern 2014):

  1. Cohesión Intra-cluster: Las observaciones asignadas a un mismo subgrupo \(C_k\) deben presentar la máxima similitud o cercanía posible entre sí (Tan et al. 2019).
  2. Separación Inter-cluster: Las observaciones pertenecientes a clusters distintos (\(C_k\) y \(C_l\), con \(k \neq l\)) deben ser tan disímiles o distantes como sea posible (Tan et al. 2019; Johnson and Wichern 2014).
                 Visión General del Aprendizaje No Supervisado
                 ┌───────────────────────────────────────────┐
                 │       Conjunto de Datos Sin Etiquetar     │
                 │         X = {x₁, x₂, ..., xₙ} ⊂ ℝᵖ        │
                 └─────────────────────┬─────────────────────┘
                                       │
                        ┌──────────────┴──────────────┐
                        ▼                             ▼
              ┌───────────────────┐         ┌───────────────────┐
              │    Cohesión       │         │    Separación     │
              │   Intra-cluster   │         │   Inter-cluster   │
              │  (Minimizar WCSS) │         │ (Maximizar BCSS)  │
              └─────────┬─────────┘         └─────────┬─────────┘
                        │                             │
                        └──────────────┬──────────────┘
                                       ▼
                       ┌──────────────────────────────┐
                       │   Estructura Latente de      │
                       │   Segmentos de Negocio       │
                       └──────────────────────────────┘

10.1.1 Diagnóstico de Agrupabilidad: El Estadístico de Hopkins

Antes de ejecutar cualquier algoritmo, el analista debe diagnosticar si el conjunto de datos contiene grupos reales o si se trata de un proceso aleatorio uniforme (Tan et al. 2019). Para ello se utiliza el Estadístico de Hopkins (\(H\)), el cual contrasta la distribución espacial de los datos reales contra una distribución aleatoria uniforme simulada (Tan et al. 2019):

\[H = \frac{\sum_{i=1}^m u_i^d}{\sum_{i=1}^m u_i^d + \sum_{i=1}^m w_i^d}\]

donde \(u_i\) representa la distancia de cada punto simulado a su vecino más cercano en los datos reales, y \(w_i\) representa la distancia entre cada punto real y su vecino real más cercano en el espacio \(d\)-dimensional (Tan et al. 2019).

  • Si \(H \approx 0.5\), los datos siguen una distribución uniforme y no presentan tendencia al agrupamiento (Tan et al. 2019).
  • Si \(H \to 1.0\) (típicamente \(H > 0.75\)), el conjunto posee una estructura espacial fuertemente agrupada (Tan et al. 2019).

10.2 Métricas de Distancia y Similitud Multivariante

La definición de la matriz de disimilitud o distancia es la piedra angular sobre la cual se erige cualquier algoritmo de agrupamiento (UA1, Johnson and Wichern 2014). La elección de la métrica determina la geometría del espacio vectorial de los clusters (Tan et al. 2019).

Dadas dos observaciones \(p\)-dimensionales \(\mathbf{x}_i = (x_{i1}, x_{i2}, \dots, x_{ip})^T\) y \(\mathbf{x}_j = (x_{j1}, x_{j2}, \dots, x_{jp})^T\):

  • Distancia Euclidiana (\(L_2\)): La métrica geométrica convencional en el espacio cartesiano (Johnson and Wichern 2014):

\[d_E(\mathbf{x}_i, \mathbf{x}_j) = \sqrt{\sum_{m=1}^p (x_{im} - x_{jm})^2} = \sqrt{(\mathbf{x}_i - \mathbf{x}_j)^T (\mathbf{x}_i - \mathbf{x}_j)}\]

  • Distancia de Manhattan (\(L_1\) / City Block): Suma de las diferencias absolutas directas a lo largo de los ejes de coordenadas, adecuada en presencia de valores atípicos moderados (Tan et al. 2019):

\[d_M(\mathbf{x}_i, \mathbf{x}_j) = \sum_{m=1}^p |x_{im} - x_{jm}|\]

  • Distancia Estadística de Mahalanobis: Modifica la distancia euclidiana incorporando la matriz de covarianzas \(\mathbf{\Sigma}\), eliminando los efectos de escala y la correlación entre atributos (Johnson and Wichern 2014):

\[d_{Mah}(\mathbf{x}_i, \mathbf{x}_j) = \sqrt{(\mathbf{x}_i - \mathbf{x}_j)^T \mathbf{\Sigma}^{-1} (\mathbf{x}_i - \mathbf{x}_j)}\]

10.2.1 Necesidad de Estandarización y Datos Mixtos

Dado que la distancia euclidiana es sensible a las unidades de medida, los atributos con mayor magnitud dominan artificialmente los cálculos de proximidad (Shmueli et al. 2018). Es imprescindible estandarizar previamente las variables a Z-scores (Shmueli et al. 2018):

\[z_{im} = \frac{x_{im} - \bar{x}_m}{s_m}\]

En problemas reales de Inteligencia de Negocios, los datasets combinan habitualmente atributos cuantitativos continuos con atributos categóricos nominales y ordinales (Shmueli et al. 2018). En tales casos, las distancias euclidianas no son aplicables. El Coeficiente de Disimilitud de Gower (\(d_G\)) resuelve este desafío ponderando el tipo de cada variable (Johnson and Wichern 2014):

\[d_G(\mathbf{x}_i, \mathbf{x}_j) = \frac{\sum_{m=1}^p \delta_{ij}^{(m)} d_{ij}^{(m)}}{\sum_{m=1}^p \delta_{ij}^{(m)}}\]

donde \(\delta_{ij}^{(m)} = 1\) si ambas observaciones tienen valores válidos en la variable \(m\), y \(d_{ij}^{(m)} = \frac{|x_{im} - x_{jm}|}{R_m}\) para cuantitativas (siendo \(R_m\) el rango observado) o \(d_{ij}^{(m)} \in \{0, 1\}\) para cualitativas (Johnson and Wichern 2014).

10.3 Algoritmos Basados en Centros (Partitioning Clustering)

Los métodos de particionamiento dividen directamente las \(n\) observaciones en \(K\) grupos prefijados (Tan et al. 2019).

10.3.1 1. El Algoritmo \(k\)-means

\(k\)-means asigna cada punto al centroide más cercano, iterando hasta la convergencia para minimización de la Suma de Cuadrados Intra-cluster (WCSS / SSE) (Tan et al. 2019):

\[\text{SSE} = \sum_{k=1}^K \sum_{\mathbf{x}_i \in C_k} \|\mathbf{x}_i - \mathbf{\mu}_k\|^2\]

donde \(\mathbf{\mu}_k = \frac{1}{|C_k|} \sum_{\mathbf{x}_i \in C_k} \mathbf{x}_i\) representa el centroide (media aritmética) del cluster \(C_k\) (Tan et al. 2019).

10.3.1.1 El Algoritmo de Lloyd (Pasos de Ejecución):

  1. Inicialización: Seleccionar aleatoriamente \(K\) puntos iniciales como centroides \(\mathbf{\mu}_1, \dots, \mathbf{\mu}_K\) (Tan et al. 2019).
  2. Asignación: Asignar cada observación \(\mathbf{x}_i\) al centroide más cercano según la distancia euclidiana.
  3. Actualización: Recalcular el centroide \(\mathbf{\mu}_k\) de cada cluster como el promedio de todas las observaciones asignadas a él.
  4. Convergencia: Repetir los pasos 2 y 3 hasta que los centroides no cambien o se alcance el número máximo de iteraciones.

Limitaciones Clave: \(k\)-means asume grupos esféricos de tamaño y densidad similar, es altamente sensible a la inicialización aleatoria y sufre ante la presencia de valores atípicos (outliers) que desplazan fuertemente las medias (Tan et al. 2019; Shmueli et al. 2018).

10.3.2 2. El Algoritmo \(k\)-medoids (PAM)

Para mitigar la sensibilidad a los valores atípicos de \(k\)-means, el algoritmo \(k\)-medoids o PAM (Partitioning Around Medoids) sustituye el uso de centroides artificiales (medias) por medoides reales (observaciones pertenecientes al dataset que minimizan la suma de disimilitudes) (Tan et al. 2019; Torgo 2017). Permite operar directamente sobre matrices de disimilitud arbitrarias (como la distancia de Gower) (Torgo 2017).

10.3.3 3. Selección del Número Óptimo de Grupos (\(K\))

  1. Método del Codo (Elbow Method): Grafica la SSE total frente a valores crecientes de \(K\). Se selecciona el valor de \(K\) en el “punto de inflexión” o codo donde los incrementos adicionales en \(K\) producen reducciones marginales poco significativas en la SSE (Shmueli et al. 2018).
  2. Coeficiente de Silueta (Silhouette Coefficient): Para una observación \(i\), la silueta \(s_i\) mide qué tan similar es a los puntos de su propio cluster frente a los del cluster más cercano (Tan et al. 2019):

\[s_i = \frac{b_i - a_i}{\max(a_i, b_i)}\]

donde \(a_i\) es la distancia promedio de \(i\) a los puntos de su mismo cluster, y \(b_i\) es la distancia promedio de \(i\) al cluster vecino más cercano (Tan et al. 2019). * \(s_i \to 1.0\): La observación está correctamente agrupada (Tan et al. 2019). * \(s_i \approx 0\): La observación está en la frontera entre dos clusters (Tan et al. 2019). * \(s_i < 0\): La observación probablemente fue asignada al cluster equivocado (Tan et al. 2019).

El \(K\) óptimo maximiza el promedio global de la silueta \(\bar{S}\) (Tan et al. 2019).

10.4 Métodos de Agrupamiento Jerárquico (Hierarchical Clustering)

A diferencia de \(k\)-means, el agrupamiento jerárquico no requiere definir \(K\) a priori, sino que construye una estructura anidada de clusters representada visualmente mediante un dendrograma (Johnson and Wichern 2014; Shmueli et al. 2018).

10.4.1 Estrategia Aglomerativa (AGNES)

Comienza con \(n\) clusters singleton (cada punto es un grupo) y en cada paso fusiona iterativamente el par de clusters más cercano hasta consolidar un único grupo global (Tan et al. 2019).

10.4.2 Criterios de Enlace (Linkage Criteria)

La distancia entre dos clusters \(C_A\) y \(C_B\) depende del criterio de enlace seleccionado (Johnson and Wichern 2014):

  • Enlace Simple (Single Linkage): Distancia mínima entre elementos (\(D(C_A, C_B) = \min_{\mathbf{x}_i \in C_A, \mathbf{x}_j \in C_B} d(\mathbf{x}_i, \mathbf{x}_j)\)). Propenso al efecto de encadenamiento (chaining) (Johnson and Wichern 2014).
  • Enlace Completo (Complete Linkage): Distancia máxima entre elementos (\(D(C_A, C_B) = \max_{\mathbf{x}_i \in C_A, \mathbf{x}_j \in C_B} d(\mathbf{x}_i, \mathbf{x}_j)\)). Produce clusters compactos y de diámetro similar (Johnson and Wichern 2014).
  • Enlace Promedio (Average Linkage / UPGMA): Distancia promedio entre todos los pares (\(D(C_A, C_B) = \frac{1}{|C_A||C_B|} \sum_{\mathbf{x}_i \in C_A} \sum_{\mathbf{x}_j \in C_B} d(\mathbf{x}_i, \mathbf{x}_j)\)) (Johnson and Wichern 2014).
  • Método de Ward: Minimiza el incremento de la varianza total intra-cluster al fusionar dos grupos (Johnson and Wichern 2014):

\[\Delta \text{SSE}_{AB} = \frac{|C_A||C_B|}{|C_A| + |C_B|} \|\mathbf{\mu}_A - \mathbf{\mu}_B\|^2\]

10.5 Implementación Práctica en R

Verificación de tendencia al agrupamiento mediante el estadístico de Hopkins:

library(factoextra)
library(cluster)

# Cargar dataset de ejemplo y estandarizar Z-score
data("USArrests")
datos_escalados <- scale(USArrests)

# Diagnóstico de agrupabilidad (Estadístico de Hopkins)
set.seed(123)
res_hopkins <- get_clust_tendency(datos_escalados, n = nrow(datos_escalados) - 1)
cat("Estadístico de Hopkins (H):", res_hopkins$hopkins_stat, "\n")

Determinación del \(K\) óptimo por el método del codo y silueta:

library(factoextra)

# 1. Gráfico del Codo (WSS)
p1 <- fviz_nbclust(datos_escalados, kmeans, method = "wss") +
  labs(title = "Método del Codo (WSS)")

# 2. Gráfico de la Silueta Promedio
p2 <- fviz_nbclust(datos_escalados, kmeans, method = "silhouette") +
  labs(title = "Método del Coeficiente de Silueta")

# Ejecutar k-means con K = 4 óptimo
set.seed(123)
km_res <- kmeans(datos_escalados, centers = 4, nstart = 25)

# Visualización de clusters en 2D (proyección PCA)
fviz_cluster(km_res, data = datos_escalados,
             ellipse.type = "convex", palette = "jco",
             ggtheme = theme_minimal())

Construcción de dendrograma con el método de Ward y corte a \(K = 4\):

# Calcular matriz de distancias euclidianas
dist_mat <- dist(datos_escalados, method = "euclidean")

# Ajustar modelo jerárquico aglomerativo (Ward.D2)
hc_ward <- hclust(dist_mat, method = "ward.D2")

# Visualizar dendrograma estilizado con 4 grupos
fviz_dend(hc_ward, k = 4,
          cex = 0.6,
          k_colors = c("#2E9FDF", "#00AFBB", "#E7B800", "#FC4E07"),
          color_labels_by_k = TRUE,
          rect = TRUE,
          main = "Dendrograma de Clustering Jerárquico (Método de Ward)")

Tratamiento de variables cuantitativas y cualitativas con Coeficiente de Gower:

library(cluster)

# Crear dataset simulado con datos mixtos
set.seed(123)
datos_mixtos <- data.frame(
  Ingreso = rnorm(100, mean = 5000, sd = 1000),
  Edad = sample(18:65, 100, replace = TRUE),
  Perfil = factor(sample(c("Básico", "Premium", "VIP"), 100, replace = TRUE))
)

# Calcular matriz de disimilitud de Gower
gower_dist <- daisy(datos_mixtos, metric = "gower")

# Aplicar k-medoids (PAM) para K = 3
modelo_pam <- pam(gower_dist, k = 3, diss = TRUE)

# Mostrar medoides representativos seleccionados
print(modelo_pam$medoids)
NoteActividad de Clase 1: Crítica y Selección de Métricas de Distancia

Escenario de Aplicación: Un banco internacional desea segmentar a sus clientes para detectar patrones de consumo. El dataset contiene tres variables: “Saldo de Cuenta Corriente en USD” (continua, 0 a 10,000,000), “Edad del Cliente” (continua, 18 a 90) y “Tipo de Tarjeta” (nominal: Clásica, Oro, Platino).

Consigna de Discusión en Grupo:

  1. Si aplicamos la distancia euclidiana directa sobre los datos sin escalar, ¿cuál variable dominará casi al 100% el cálculo de similitud y por qué?
  2. ¿Por qué la distancia de Gower combinada con el algoritmo PAM (\(k\)-medoids) resulta técnicamente superior a \(k\)-means estándar en este escenario? (Tan et al. 2019; Johnson and Wichern 2014).
NoteActividad de Clase 2: Diagnóstico Comparativo entre \(k\)-means y Agrupamiento Jerárquico

Escenario de Riesgo: Un equipo de análisis aplica \(k\)-means (\(K=4\)) sobre una base de clientes de comercio electrónico que incluye un 1% de compradores mayoristas cuyas órdenes superan en 100 veces el promedio general.

Consigna de Discusión en Grupo:

  1. ¿Cómo se ven afectados los centroides de \(k\)-means por la presencia de estos valores atípicos?
  2. ¿Por qué la combinación del algoritmo PAM (\(k\)-medoids) o un enlace jerárquico promedio ofrece mayor solidez en esta situación?.

10.6 Cápsula de Ejercicios del Agrupamiento

TipEjercicios de Aplicación Práctica
  1. Segmentación de Clientes y Selección de \(K\): Utilizando el dataset USArrests (disponible en R base), estandarice las variables de tasas de criminalidad. Calcule el estadístico de Hopkins, determine el número óptimo de clusters comparando el método del codo y la silueta promedio, y caracterice los centroides finales obtenidos con \(k\)-means.
  2. Comparación de Criterios de Enlace Jerárquico: Con los datos de USArrests escalados, construya tres modelos jerárquicos aglomerativos aplicando enlace simple, enlace completo y el método de Ward. Dibuje los tres dendrogramas, corte cada árbol en \(K=4\) grupos y evalúe mediante la matriz de confusión la coincidencia entre las particiones.
  3. Agrupamiento sobre Datos Mixtos: Construya un dataset de 100 observaciones simuladas que contenga dos variables continuas y dos variables categóricas. Calcule la matriz de disimilitud de Gower con cluster::daisy, aplique el algoritmo PAM (\(k\)-medoids) para \(K=3\) y visualice los perfiles de los medoides seleccionados.