基本思想:
1、开始时,将每个样本作为一类。
2、规定某种度量作为样本之间距离以及类距离之间的度量,并且计算之。(hculster里边的dist方法以及method属性)
3、将距离最短的两个类合并为一个类。
4、重复2-3,即不断合并最近的两个类,每次减少一个类,直到所有的样本合并为一个类。
点与点的距离和类与类之间距离的计算可以参考R-modeling关于距离的介绍。
#---层次聚类
dim(iris)#返回行列数
idx<-sample(1:dim(iris)[1],40)
iris3<-iris[idx,-5]
iris3
hc<-hclust(dist(iris3),method = "ave") #注意hcluster里边传入的是dist返回值对象
plot(hc,hang=-1,labels=iris$Species[idx]) #这里的hang=-1使得树的节点在下方对齐
#将树分为3块
rect.hclust(hc,k=3)
groups<-cutree(hc,k=3)
网友评论