使用 Ward 聚类时,对差异进行平方是否有优势?

机器算法验证 r 距离函数 层次聚类 病房
2022-04-11 05:54:04

使用 Ward 方法进行聚类时,是否有理由更喜欢平方或不平方差异?

这个问题是由R函数 文档中的以下语句引起的:hclust()

在 Ward 聚类的文献中发现了两种不同的算法。选项“ ward.D”(相当于wardR 版本 <= 3.0.3 中唯一的 Ward 选项“”)使用的选项没有实现 Ward(1963)的聚类标准,而选项“ ward.D2”实现了该标准(Murtagh and Legendre 2013)。对于后者,差异在集群更新之前被平方。

平方会改进算法吗?

2个回答

来自 Murtaugh, F. 和 Legendre, P. (2011) 的结论Ward 的层次聚类方法:聚类准则和凝聚算法,ArXive:1111.6285v2 ( pdf ):

两种算法,Ward1Ward2 ...当应用于相同的距离矩阵 D 时,它们会产生不同的结果。本文表明,当它们应用于相同的相异矩阵 D 时,只有 Ward2 最小化了 Ward 聚类标准并产生了 Ward 方法。Ward1 和 Ward2 算法可以通过使用带有 D-squared 的 Ward1 和带有 D 的 Ward2 来优化相同的标准并产生相同的聚类拓扑。

例如,hclust(dist(x)^2,method="ward")等价于hclust(dist(x),method="ward.D2")

从解释来看,ward在 R 中首先被错误地实现了。

仅在最近的版本中,添加了更正版本的病房链接,如ward.D2. 因此,如果您想使用病房联动,请使用ward.D2.