1. 程式人生 > >機器學習實戰-62:層次聚類演算法(Hierarchical Clustering)

機器學習實戰-62:層次聚類演算法(Hierarchical Clustering)

機器學習實戰-62:層次聚類演算法

機器學習分為監督學習、無監督學習和半監督學習(強化學習)。無監督學習最常應用的場景是聚類(clustering)和降維(dimension reduction)。聚類演算法包括:K均值聚類(K-Means)、層次聚類(Hierarchical Clustering)和混合高斯模型(Gaussian Mixture Model)。降維演算法包括:主成因分析(Principal Component Analysis)和線性判別分析(Linear Discriminant Analysis)。

層次聚類(Hierarchical Clustering)是一種聚類演算法,屬於無監督學習。層次聚類通過計算不同類別資料點間的相似度來建立一棵有層次的巢狀聚類樹。在聚類樹中,不同類別的原始資料點是樹的葉節點,樹的頂層是一個聚類的根節點。建立聚類樹的經典方式是:自下而上合併方法和自上而下分裂方法。

1 演算法原理

層次聚類方法的基本思想是:對給定的資料集進行層次化分解,根據一定的連線規則(單連線、全連線、平均連線和歐式幾何距離等)反覆迭代將資料以層次架構將二個小類別聚合為一個大類別。

通過某種相似性測度計算節點之間的相似性,並按相似度由高到低排序,逐步重新連線節點。該方法的優點是可隨時停止劃分,主要步驟如下:

  • 將每個資料樣本看做一個類,計算樣本兩兩之間的最小距離;
  • 將距離最小的兩個小類別合併成一個新類別;
  • 重新計算新類和所有類之間的距離;
  • 反覆迭代(2)(3)步驟,直到所有的類合併成一個大類別。

聚類過程中,小類合併為大類或者大類分裂為小類,判斷兩個類別之間的相似度常見有三種方法:

  • 單連線(Single Linkage): 取兩個類中距離最近的兩個樣本的距離作為這兩個集合的距離, 兩個樣本之間的距離越小,這兩個類之間的相似度就越大。
  • 全連線(Complete Linkage): 取兩個集合中距離最遠的兩個點的距離作為兩個集合的距離, 兩個Cluster之間的距離比較接近,但是由於個別點的原因,兩個Cluster無法合併。
  • 平均連線(Average Linkage): 把兩個集合中的點兩兩的距離全部放在一起求一個平均值,以平均值衡量這兩個聚類的相似值相對合理。

層次聚類(Hierarchical Clustering)演算法的核心優勢如下:

  • 計算伸縮性: 距離和規則可自由選擇,計算量大;
  • 引數依賴性: 不需要預設引數,自動發現層次關係;
  • 普適性能力: 自動發現層次關係,結果受奇異值干擾;
  • 抗噪音能力: 結果受奇異值干擾;
  • 結果解釋性: 模型和結果均具有解釋性。

2 演算法例項

sklearn.cluster.AgglomerativeClustering: 使用自底向上的聚類方法,主要有三種聚類準則:

  • complete(maximum) linkage: 兩類間的距離用最遠點距離表示。
  • avarage linkage:平均距離。
  • ward’s method: 以組內平方和最小,組間平方和最大為目的。

請參考下面兩個Sklearn官方示例

3 典型應用

在企業架構、社會組織架構和政府組織架構中,具有非常明顯的層次性,分層次是一種先進的思維,推動著組織能力向專業化分工,整體上提高了組織的能力。可以用一個樹狀網路描述類似的組織架構,一般通過給定網路的拓撲結構定義網路節點間的相似性或距離,然後採用單連線層次聚類或全連線層次聚類將網路節點組成一個樹狀圖層次結構。樹的葉節點表示網路節點,由相似或距離接近的子節點合併而得到父節點。

系列文章

參考文獻

  • [1] 周志華. 機器學習. 清華大學出版社. 2016.
  • [2] [日]杉山將. 圖解機器學習. 人民郵電出版社. 2015.
  • [3] 佩德羅·多明戈斯. 終極演算法-機器學習和人工智慧如何重塑世界. 中信出版社. 2018.