資料探勘-層次聚類

二十同學發表於2020-12-02

微信搜尋:“二十同學” 公眾號,歡迎關注一條不一樣的成長之路

層次聚類(hierarchical clustering)演算法極為簡單:有N多節點,最開始認為每個節點為一類,然後找到距離最近的節點“兩兩合併”,合併後的兩個節點的平均值作為新的節點,繼續兩兩合併的過程,直到最後都合併成一類。

下圖表明瞭聚類的過程,距離最近的節點合併(第一步中,如果有兩對節點距離一樣,那就同時合併)

 

層次聚類過程

如果用資料探勘工具來做(如SPSS),一般會生成一個樹形圖,那麼我們可以根據分析問題的具體情況,選擇到底最終要聚成幾類:

層次聚類樹形圖

 

如果從純理論上講,判斷聚成幾類可以參考每一步合併的“距離”是不是有明顯差距,我們的例子中:

第一步:A和B,C和D合併時候,距離很近,就算大概是1(就是肉眼估算,沒有什麼測量)
第二步:CD和E合併,距離其實也很近,大概2
第三步:CDE和F合併,距離遠了,大概8
第四步:CDEF和AB合併,距離大概9

可見,第二步到第三步,距離有了一個質的提升,說明相對接近的都已經合成一推兒,開始遠距離“結合”了,因此,就在第二步的地方結束,應該是一個較好的聚類選擇,也就是聚成3類。

當然,真正聚成幾類一定不要從理論出發,還是要看實際案例中,聚成幾類最合理,最好解釋,最能說明問題

層次聚類運算速度比較慢,因為要每次都要計算多個cluster內所有資料點的兩兩距離,處理大量資料時非常吃力,最大的優點,就是它一次性地得到了整個聚類的過程,只要得到了上面那樣的聚類樹,想要分多少個cluster都可以直接根據樹結構來得到結果,改變 cluster數目不需要再次計算資料點的歸屬。

 

非常感謝:點贊收藏評論

微信搜尋:“二十同學” 公眾號,或者直接掃一掃,關注一條不一樣的成長之路

相關文章