统计聚类法的基本步骤:
1>形成数据框
2>计算距离阵
计算n个样品两两间的距离D。
3>进行系统聚类
(I)构造n个类,每个类只包含一个样品;
(2)合并距离最近的两类为一新类;
(3)计算新类与当前各类的距离,若类个数为1,结束;否则回到步骤(2)。
4>绘制聚类图
在系统聚类基础上,可用 plot()函数绘制系统聚类图。
5>画分类框
在系统聚类基础上,可根据rect.hclust()函数给系统聚类图加分类框。
6>确定分类结果
在系统聚类基础上,可根据cutree()函数给出具体分类结果。
系统聚类函数hclust()用法:
hc(D,method="complete"(最长距离法)或者“single”(最短距离法较常用)...)
D为相似矩阵,通常为距离矩阵。
首先创建数据:
- x1=c(2,3,2,1)
-
- x2=c(2,2,6,5)
-
- plot(x1,x2)#散点图 X=data.frame(x1,x2)#形成数据框
-
- dist(X,method = "euclidean")#欧氏距离
-
- D=dist(X)#欧式距离
- D
min(D)
合并距离最近的两类为一新类,计算新类与当前各类的距离,最后将其绘制成系统图。
- hc=hclust(D,"single") #系统聚类 hc
-
- names(hc) [1] "merge" (合并) "height" "order" "labels" [5] "method" "call" "dist.method"
-
- data.frame(hc$merge,hc$height)
plot(hc)
手动计算样例,蓝色和红色字: