如何在最佳K处划线(切割)树形图

问题描述 投票:2回答:1

如何在树形图中绘制一条线,该线对应于给定标准的最佳K?

像这样:

enter image description here

让我们假设这是我的树形图,最好的K是4。

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

我知道abline函数能够在图形中绘制线条,类似于上面显示的线条。但是,我不知道如何计算高度,因此该函数用作abline(h = myHeight)

r plot hierarchical-clustering dendrogram
1个回答
2
投票

获得高峰所需的信息来自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)

Dendrogram

© www.soinside.com 2019 - 2024. All rights reserved.