1. 程式人生 > >ML10-層次聚類

ML10-層次聚類

層次聚類含義:

是構建簇層次結構的演算法。從分配給自己簇的所有的資料點開始,然後兩個距離最近的簇合併成一個簇,重複合併不同的簇,直到最後只剩下一個簇時,演算法終止。

聚類種類:

凝聚:

將每個物件當做一個單一的簇,將相似的簇進行合併,直到形成一個大的簇為止。類似於樹狀圖。

全連線的凝聚層次聚類方法:

  1. 獲取所有樣本的距離矩陣
  2. 將每個資料點作為一個單獨的簇
  3. 基於某一度量距離,合併兩個簇
  4. 更新矩陣距離
  5. 重複2-4,直到所有樣本都在同一個簇中

分裂:

分裂聚類正好與凝聚聚類相反。凝聚聚類是從下到上的聚類方法,分裂聚類是從上到下的方法。首先是將所有的物件都置於同一個簇中,然後逐漸細分成越來越小的簇,直到每個物件都獨成一簇,或者到達我們預設的某種終止條件,則分裂聚類結束。

度量距離:

要聚類,肯定需要計算距離,計算點與點之間的距離,聚類與聚類之間的距離。

度量距離的常用方法有:

  1. Single Linkage將兩個組合中距離最近的點作為這兩個組合間的距離
  2. Complete Linkage將兩個組合中,距離最大的點之間的距離,作為這兩個組合間的距離
  3. Average Linkage計算兩組合中的每兩個資料之間的距離,取其平均值,作為兩組合之間的距離

參考文章:

  1. https://blog.csdn.net/sinat_29957455/article/details/80146093
  2. https://zhuanlan.zhihu.com/p/32438294