Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Machine Learning clásico, Unidad 6 — Aprendizaje no supervisado, 6.2 — Clustering avanzado ·

Clustering jerárquico

Clustering jerárquico: Una técnica avanzada de agrupamiento no supervisado

Introducción

El clustering jerárquico es una técnica avanzada de aprendizaje no supervisado que permite organizar datos en grupos basados en sus características. Esta técnica se distingue por su capacidad para proporcionar una representación visual del proceso de agrupamiento a través de un dendrograma, lo que facilita la interpretación y el análisis de los datos. Es particularmente útil cuando no sabemos cuántos clusters existen o cómo deben ser definidos.

Explicación principal

Concepto básico

El clustering jerárquico puede dividirse en dos enfoques principales: aglomerativo (bottom-up) y divisivo (top-down). El método aglomerativo comienza con cada observación como un cluster individual, luego se agrupan las observaciones más similares hasta que forman una sola estructura. En contraste, el clustering divisivo empieza con todas las observaciones en un solo grupo y los divide iterativamente hasta que se logra un cierto criterio.

Ejemplo práctico

Supongamos que estamos analizando datos de clientes para segmentarlos según sus compras y comportamientos. Utilizaremos el método aglomerativo:

from sklearn.cluster import AgglomerativeClustering
import matplotlib.pyplot as plt

# Datos de ejemplo: 10 clientes con características numéricas
X = [[5, 4], [3, 7], [8, 2], [9, 6], [7, 1], [2, 1], 
     [4, 3], [6, 2], [1, 5], [10, 2]]

# Crear el modelo de clustering jerárquico
agg_clustering = AgglomerativeClustering(n_clusters=None, distance_threshold=0)

# Ajustar y predecir clusters
agg_clustering.fit(X)
labels = agg_clustering.labels_

# Visualizar los datos con dendrograma
plt.figure(figsize=(10, 7))
plt.title('Dendograma')
dendrogram = sch.dendrogram(sch.linkage(X, method='ward'))
plt.show()

Visualización del Dendrograma

El dendrograma muestra cómo se forman los clusters a medida que avanzamos en el proceso de agrupamiento. Cada rama del árbol representa un cluster y la altura de las ramas indica la distancia entre los clusters.

Errores típicos / trampas

  1. Selección incorrecta de métrica: La elección de una métrica inadecuada puede llevar a agrupamientos erróneos. Por ejemplo, usar la similitud en lugar de la distancia puede resultar en clusters no intuibles.
  1. Escalado inadecuado del conjunto de datos: Los datos deben ser escalados para evitar que las características con valores más altos influyan excesivamente en el proceso de agrupamiento.
  1. Detección errónea de la altura del dendrograma: La elección subóptima de la altura del dendrograma para determinar cuántos clusters formar puede llevar a un mal rendimiento del modelo.

Checklist accionable

  1. Elija adecuadamente la métrica y el enfoque (aglomerativo o divisivo): Basado en el tipo de datos y los objetivos del proyecto.
  2. Preprocese los datos: Escalaje, normalización, eliminación de variables irrelevantes, etc., para asegurar que no haya distorsiones en la formación de clusters.
  3. Visualice el dendrograma: Asegúrese de entender cómo se forman los clusters a medida que avanzamos.
  4. Tome una decisión informada sobre la altura del dendrograma: Elija cuidadosamente el nivel adecuado para determinar cuántos clusters formar basándose en el análisis visual y métrico.
  5. Validación cruzada: Asegúrese de validar los resultados utilizando técnicas como validación cruzada, MAE, MSE o otros indicadores pertinentes.

Siguientes pasos

  • Explorar otras técnicas de clustering no supervisado para obtener una visión más completa del análisis.
  • Aplicar el clustering jerárquico a diferentes conjuntos de datos y comprender cómo varían los resultados según los parámetros utilizados.
  • Investigar el impacto de la elección del enfoque (aglomerativo o divisivo) en la calidad de agrupamiento.

Claro, el clustering jerárquico es una herramienta valiosa para organizar y analizar datos complejos. Su comprensión y correcta aplicación pueden proporcionar insights valiosos sobre los patrones detrás del conjunto de datos.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).