R語言聚類(划分、層次)


R語言聚類

K划分

1、 隨機生成3個簇點

> c1=cbind(rnorm(20,2,1),rnorm(20,2,1))

> c2=cbind(rnorm(20,3,2),rnorm(20,15,3))

> c3=cbind(rnorm(20,20,2),rnorm(20,20,3))

> v=rbind(c1,c2,c3)

在圖中看看這三個簇的分布

> plot(v) 如圖,

 

2、 K聚類

clara(x, k),K聚類函數

x是數據集,可以是矩陣或者數據框

k是聚類簇的個數

> clara(v,3),結果如圖

 

由上圖,可以看出三個聚類的結果。

3、 顯示聚類結果

> cls=clara(v,3)

> clusplot(cls)

 

4、 k的改變

k-means的一個缺陷就是k需要指定,如果k指定的不好,聚類效果就不好。

如k值分別取2、4、5時的情況。

 

層次聚類

1、  求相似矩陣

為了表示得更清楚一點,我們取較少的點。

> c11=cbind(rnorm(5,2,1),rnorm(5,2,1))

> c12=cbind(rnorm(5,3,2),rnorm(5,15,3))

> c13=cbind(rnorm(5,20,2),rnorm(5,20,3))

> v=rbind(c11,c12,c13)

 

sim=dist(v),求相似矩陣,是對角矩陣

2、  層次聚類

> hcls=hclust(sim)

> plot(hcls)

 

簡單的聚類方法用R語言實現。


免責聲明!

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



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