Fundamentos del clustering jerárquico

Análisis de clústeres en Python

Shaumik Daityari

Business Analyst

Crear una matriz de distancias con linkage

scipy.cluster.hierarchy.linkage(observations, 
                                method='single', 
                                metric='euclidean', 
                                optimal_ordering=False
)
  • method: cómo calcular la proximidad entre clusters
  • metric: métrica de distancia
  • optimal_ordering: ordenar los puntos
Análisis de clústeres en Python

¿Qué método usar?

  • 'single': según los dos objetos más cercanos
  • 'complete': según los dos objetos más lejanos
  • 'average': según la media aritmética de todos los objetos
  • 'centroid': según la media geométrica de todos los objetos
  • 'median': según la mediana de todos los objetos
  • 'ward': según la suma de cuadrados
Análisis de clústeres en Python

Crear etiquetas de cluster con fcluster

scipy.cluster.hierarchy.fcluster(distance_matrix, 
                                 num_clusters,
                                 criterion
)
  • distance_matrix: salida de linkage()
  • num_clusters: número de clusters
  • criterion: cómo fijar umbrales para formar clusters
Análisis de clústeres en Python

Clustering jerárquico con método ward

Análisis de clústeres en Python

Clustering jerárquico con método single

Análisis de clústeres en Python

Clustering jerárquico con método complete

Análisis de clústeres en Python

Reflexiones finales para elegir método

  • No hay un único método válido para todo
  • Hay que entender bien la distribución de los datos
Análisis de clústeres en Python

¡Vamos a practicar!

Análisis de clústeres en Python

Preparing Video For Download...