階層式叢集的基礎

Python 中的叢集分析

Shaumik Daityari

Business Analyst

用 linkage 建立距離矩陣

scipy.cluster.hierarchy.linkage(observations, 
                                method='single', 
                                metric='euclidean', 
                                optimal_ordering=False
)
  • method:計算叢集接近度的方式
  • metric:距離度量
  • optimal_ordering:資料點排序
Python 中的叢集分析

該用哪一種方法?

  • 'single':以最近的兩個物件為準
  • 'complete':以最遠的兩個物件為準
  • 'average':以所有物件的算術平均為準
  • 'centroid':以所有物件的幾何中心為準
  • 'median':以所有物件的中位數為準
  • 'ward':以平方和為準
Python 中的叢集分析

用 fcluster 產生叢集標籤

scipy.cluster.hierarchy.fcluster(distance_matrix, 
                                 num_clusters,
                                 criterion
)
  • distance_matrixlinkage() 的輸出
  • num_clusters:叢集數量
  • criterion:如何決定成叢門檻
Python 中的叢集分析

使用 ward 方法的階層式叢集

Python 中的叢集分析

使用 single 方法的階層式叢集

Python 中的叢集分析

使用 complete 方法的階層式叢集

Python 中的叢集分析

挑選方法的最後建議

  • 沒有放諸四海皆準的方法
  • 需要仔細理解資料分佈
Python 中的叢集分析

一起來練習吧!

Python 中的叢集分析

Preparing Video For Download...