R语言实现层次聚类分析

聚类分析:对样品或指标进行分类的一种分析方法,依据样本和指标已知特性进行分类。

本节主要介绍R语言层次聚类分析,一共包括3个部分,每个部分包括一个具体实战例子。

1、常规聚类过程:

一、首先用dist()函数计算变量间距离

dist.r = dist(data, method=” “)

其中method包括6种方法,表示不同的距离测度:”euclidean”, “maximum”, “manhattan”, “canberra”, “binary” or “minkowski”。相应的意义自行查找。

二、再用hclust()进行聚类

hc.r = hclust(dist.r, method = “ ”)

其中method包括7种方法,表示聚类的方法:”ward”, “single”, “complete”,”average”, “mcquitty”, “median” or “centroid”。相应的意义自行查找。

三、画图

plot(hc.r, hang = -1,labels=NULL) 或者plot(hc.r, hang = 0.1,labels=F)
hang 等于数值,表示标签与末端树杈之间的距离,
若是负数,则表示末端树杈长度是0,即标签对齐。
labels 表示标签,默认是NULL,表示变量原有名称。labels=F :表示不显示标签。

实例介绍:

1.webp

3.webp

特殊情况用法:

当用已知距离矩阵进行聚类时,即变量间的距离已经计算完,只是想用
已知的距离矩阵进行聚类。这时,需将距离矩阵转成dist类型。
然后再执行hclust()聚类和plot()画图。

 
 
  1. # mydata作为距离矩阵,且为正方矩阵
  2.  
  3. mydata<-matrix(1:25,ncol=5);
  4.  
  5. class(mydata);
  6.  
  7. # 把mydata变成dist类型
  8.  
  9. mydist<-as.dist(mydata);
  10.  
  11. class(mydist);
  12.  
  13. [1] "dist"
  14.  
  15. myhc<-hclust(mydist,method="complete");
  16.  
  17. myhc
  18.  
  19. Call:
  20.  
  21. hclust(d = mydist, method ="complete")
  22.  
  23. Cluster method : complete
  24.  
  25. Number of objects: 5
  26.  
  27. plot(myhc,hang=0.1)

4.webp

2、热图聚类过程:

一、首先用dist()函数计算变量间距离

dist.r = dist(data, method=” “)

二、用heatmap()函数进行热点图聚类

对于heatmap中具体参数,这里不做过多介绍,可在帮助文档中找说明。除此heatmap函数之外,gplots包中的heatmap.2()函数,也可以做热点图聚类。
其中参数不做过多描述。若有需求,请分享并回复:heatmap.2

即可得到答案。

实战例子:

 
 
  1. require(graphics);
  2. dist.r<-dist(USArrests,method="euclidean") # 方法:欧氏距离
  3. dist.r

#聚类并画图

 
 
  1. heatmap(as.matrix(dist.r))

5.webp

3、多维标度和聚类的结果

MDS方法对距离矩阵进行降维,用不同的颜色来表示聚类的结果。
另一种聚类效果展示。

例子:

6.webp

7.webp




转载自: http://www.idatacamp.com/1554.html/


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值