层次聚类将个体间的关系进行分层次展示,可以人为设定分为几类。

###生成层次聚类,dist距离矩阵默认计算方式为欧氏距离method = "euclidean",聚类方法默认为complete hc = hclust(dist(mtcars)) plot(hc) 

作图结果如下:
层次聚类分析及代码实现
根据上述图,我们可以初步确定聚为几类更为合适:

#要是没有这个包的话,首先需要安装一下 #install.packages("factoextra") #载入包 library(factoextra) fviz_dend(hc, k = 4,            cex = 0.7,            k_colors = c("#2E9FDF", "#00AFBB", "#E7B800", "#FC4E07"),           color_labels_by_k = TRUE,            rect = TRUE           ) 

结果如下:
层次聚类分析及代码实现
如果想放平,可以这样画:

fviz_dend(hc, k = 4,            cex = 0.7,            k_colors = c("#2E9FDF", "#00AFBB", "#E7B800", "#FC4E07"),           color_labels_by_k = TRUE,            rect = TRUE,           horiz = T) 

这样就放平了:

层次聚类分析及代码实现
当然还有更多美化方式,具体可以参考最全的R语言聚类树形图画法

距离矩阵和聚类算法小结

如果对计算距离矩阵和聚类的算法有特定要求,可以参考下面的参数介绍。

在聚类中求两点的距离有:

1,绝对距离:manhattan

2,欧氏距离:euclidean 默认

3,闵科夫斯基距离:minkowski

4,切比雪夫距离:chebyshev

5,马氏距离:mahalanobis

6,蓝氏距离:canberra

用默认的算法求出距离如下

算出距离后就可以进行聚类啦!

out.hclust=hclust(out.dist,method=“complete”) #根据距离聚类

聚类也有多种方法:

1,类平均法:average

2,重心法:centroid

3,中间距离法:median

4,最长距离法:complete 默认

5,最短距离法:single

6,离差平方和法:ward

7,密度估计法:density

基于R语言的聚类分析(k-means,层次聚类)
最全的R语言聚类树形图画法
R语言用hclust进行聚类分析
R语言可视化(二十九):聚类树图绘制
R语言之系统聚类(层次)分析之图谱形式完整版
99-非监督学习之hclust分层聚类
R语言绘图——给树状图的标签赋予不同颜色
R语言聚类分析