Basi del clustering gerarchico

Analisi di cluster in Python

Shaumik Daityari

Business Analyst

Creare una matrice delle distanze con linkage

scipy.cluster.hierarchy.linkage(observations, 
                                method='single', 
                                metric='euclidean', 
                                optimal_ordering=False
)
  • method: come calcolare la vicinanza tra cluster
  • metric: metrica di distanza
  • optimal_ordering: ordina i punti dati
Analisi di cluster in Python

Quale metodo usare?

  • 'single': basato sui due oggetti più vicini
  • 'complete': basato sui due oggetti più lontani
  • 'average': basato sulla media aritmetica di tutti gli oggetti
  • 'centroid': basato sulla media geometrica di tutti gli oggetti
  • 'median': basato sulla mediana di tutti gli oggetti
  • 'ward': basato sulla somma dei quadrati
Analisi di cluster in Python

Crea etichette di cluster con fcluster

scipy.cluster.hierarchy.fcluster(distance_matrix, 
                                 num_clusters,
                                 criterion
)
  • distance_matrix: output di linkage()
  • num_clusters: numero di cluster
  • criterion: come fissare le soglie per formare cluster
Analisi di cluster in Python

Clustering gerarchico con metodo Ward

Analisi di cluster in Python

Clustering gerarchico con metodo single

Analisi di cluster in Python

Clustering gerarchico con metodo complete

Analisi di cluster in Python

Considerazioni finali sulla scelta del metodo

  • Nessun metodo è sempre il migliore
  • Capisci bene la distribuzione dei dati
Analisi di cluster in Python

Proviamo qualche esercizio

Analisi di cluster in Python

Preparing Video For Download...