我正在使用层次聚类对数据进行分类。
我想定义最佳的簇数。为此,其想法是可视化一个图,其中x轴是簇的数量,y轴是树状图中树的高度。
要做到这一点,我需要在指定簇数K时知道树的高度,例如,如果K = 4,我需要在命令后知道树的高度
cutree(hclust(dist(data), method = "ward.D"), k = 4)
有人可以帮忙吗?
答案 0 :(得分:2)
高度存储在hclust
对象中。由于您不提供任何数据,因此我将用内置的虹膜数据进行说明。
HC = hclust(dist(iris[,1:4]), method="ward.D")
sort(HC$height)
<reduced output>
[133] 1.8215623 1.8787489 1.9240172 1.9508686 2.5143038 2.7244855
[139] 2.9123706 3.1111893 3.2054610 3.9028695 4.9516315 6.1980126
[145] 9.0114060 10.7530460 18.2425079 44.1751473 199.6204659
最大值是第一次分割的高度。第二大是第二分裂,依此类推。 您可以通过绘图看到这提供了所需的高度。
plot(HC)
abline(h=10.75,col="red")
您可以看到第四个最大高度与第四个拆分的高度匹配。