原文鏈接:http://tecdat.cn/?p=5305
大家好!在這篇文章中,我將向你展示如何在R中進行層次聚類。
什么是分層聚類?
分層聚類是一種可供選擇的方法,它可以自下而上地構建層次結構,並且不需要我們事先指定聚類的數量。
該算法的工作原理如下:
將每個數據點放入其自己的群集中。
確定最近的兩個群集並將它們組合成一個群集。
重復上述步驟,直到所有數據點位於一個群集中。
一旦完成,它通常由樹狀結構表示。
讓我們看看分層聚類算法可以做得多好。我們可以使用hclust這個。hclust要求我們以距離矩陣的形式提供數據。我們可以通過使用dist。默認情況下,使用完整的鏈接方法。
這會生成以下樹形圖:
從圖中我們可以看出,群集總數的最佳選擇是3或4:
要做到這一點,我們可以使用所需數量的群集來切斷樹cutree。
現在,讓我們將它與原始物種進行比較。
它看起來像算法成功地將物種setosa的所有花分為簇1,並將virginica分為簇2,但是與花斑雜交有困難。如果你看看顯示不同物種的原始圖,你可以理解為什么:
讓我們看看我們是否可以通過使用不同的連接方法更好。這一次,我們將使用平均連接方法:
這給了我們以下樹狀圖:
我們可以看到,群集數量的兩個最佳選擇是3或5.讓我們用cutree它來將它降到3個群集。
我們可以看到,這一次,該算法在聚類數據方面做得更好,只有6個數據點出錯。
我們可以如下繪制它與原始數據進行比較:
這給了我們下面的圖表:
內部顏色與外部顏色不匹配的所有點都是不正確聚類的點。










