层次聚类将个体间的关系进行分层次展示,可以人为设定分为几类。
###生成层次聚类,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语言聚类分析