2

当您在 R 中执行以下聚类时:

> d <- dist(as.matrix(mtcars))
> hc <- hclust(d)   
> plot(hc)

你会得到一棵树,其节点的分支长度不相等。在普通的层次聚类(upgma)中,所有的长度都必须相等。有人可以解释一下 hclust 的默认行为,以及它如何产生不相等的长度吗?谢谢。

4

1 回答 1

2

我也认为,这是一种奇怪的行为。但它不是由hclust而是plot.hclust相反引起的。如果您查看帮助 ( ? plot.hclust),您会发现hang默认设置为 0.1 的参数:

标签应悬挂在绘图其余部分下方的绘图高度分数。负值将导致标签从 0 下垂。

因此,从 upgma 已知的行为可以通过

plot( hc, hang = -1 )

我猜这两种不同的行为是不同定义的结果,应该将高度分配给只包含一个观察的集群,即不与另一个合并。显然这里的定义是:它们根本没有高度。形式上,用 . 绘制它们是正确的hang = 0。但由于这看起来很难看,我猜这hang = 0.1是设置为默认值。

在任何情况下,你都会得到长度不等的分支hang >= 0

于 2013-04-11T14:07:48.007 回答