如何在最佳 K 处排列(切割)树状图

How to line (cut) a dendrogram at the best K

如何在树状图中绘制一条线,使 对应给定标准的最佳 K

像这样:

假设这是我的树状图,最好的 K 是 4。

data("mtcars")
myDend <-  as.dendrogram(hclust(dist(mtcars))) 
plot(myDend)

我知道 abline 函数可以像上面显示的那样在图形中画线。但是,我不知道如何计算高度,所以该函数用作 abline(h = myHeight)

获取身高所需的信息随 hclust 一起提供。它有一个包含高度的变量。要获得 4 个簇,您需要在第 3 大和第 4 大高度之间画线。

HC = hclust(dist(mtcars))
myDend <-  as.dendrogram(HC) 

par(mar=c(7.5,4,2,2))
plot(myDend)

k = 4
n = nrow(mtcars)
MidPoint = (HC$height[n-k] + HC$height[n-k+1]) / 2
abline(h = MidPoint, lty=2)