R語言代寫實現層次聚類模型


原文鏈接:http://tecdat.cn/?p=5305

 

 

大家好!在這篇文章中,我將向你展示如何在R中進行層次聚類。 

什么是分層聚類?

分層聚類是一種可供選擇的方法,它可以自下而上地構建層次結構,並且不需要我們事先指定聚類的數量。

該算法的工作原理如下:

將每個數據點放入其自己的群集中。

確定最近的兩個群集並將它們組合成一個群集。

重復上述步驟,直到所有數據點位於一個群集中。

一旦完成,它通常由樹狀結構表示。

 

 

讓我們看看分層聚類算法可以做得多好。我們可以使用hclust這個。hclust要求我們以距離矩陣的形式提供數據。我們可以通過使用dist。默認情況下,使用完整的鏈接方法。

這會生成以下樹形圖:

從圖中我們可以看出,群集總數的最佳選擇是3或4:

要做到這一點,我們可以使用所需數量的群集來切斷樹cutree。

現在,讓我們將它與原始物種進行比較。

 

它看起來像算法成功地將物種setosa的所有花分為簇1,並將virginica分為簇2,但是與花斑雜交有困難。如果你看看顯示不同物種的原始圖,你可以理解為什么:

讓我們看看我們是否可以通過使用不同的連接方法更好。這一次,我們將使用平均連接方法:

這給了我們以下樹狀圖:

我們可以看到,群集數量的兩個最佳選擇是3或5.讓我們用cutree它來將它降到3個群集。

我們可以看到,這一次,該算法在聚類數據方面做得更好,只有6個數據點出錯。

我們可以如下繪制它與原始數據進行比較:

這給了我們下面的圖表:

內部顏色與外部顏色不匹配的所有點都是不正確聚類的點。

如果您有任何疑問,請在下面發表評論。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM