首页 > 代码库 > R语言聚类(K-Means、层次)
R语言聚类(K-Means、层次)
R语言聚类
K-Means
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语言实现。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。