【问题标题】:How to line (cut) a dendrogram at the best K如何在最佳 K 处排列(切割)树状图
【发布时间】:2018-08-11 23:26:37
【问题描述】:

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

像这样:

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

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

我知道abline 函数能够在图形中绘制线条,类似于上面显示的那个。不过不知道怎么计算高度,所以函数用abline(h = myHeight)

【问题讨论】:

  • 您使用什么方法来确定“最佳”?
  • 对于更严肃的任务,我正在使用 SIlhouette。问题中最好的 K 完全是任意的,因为我的疑问是如何在给定 k 的情况下画一条线,或者在给定 k 的情况下如何确定高度

标签: r plot hierarchical-clustering dendrogram


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-04-27
    • 2014-04-14
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2013-11-13
    • 2017-01-11
    相关资源
    最近更新 更多