使用 Ward 方法进行聚类时,是否有理由更喜欢平方或不平方差异?
这个问题是由R函数 文档中的以下语句引起的:hclust()
在 Ward 聚类的文献中发现了两种不同的算法。选项“
ward.D”(相当于wardR 版本 <= 3.0.3 中唯一的 Ward 选项“”)使用的选项没有实现 Ward(1963)的聚类标准,而选项“ward.D2”实现了该标准(Murtagh and Legendre 2013)。对于后者,差异在集群更新之前被平方。
平方会改进算法吗?
使用 Ward 方法进行聚类时,是否有理由更喜欢平方或不平方差异?
这个问题是由R函数 文档中的以下语句引起的:hclust()
在 Ward 聚类的文献中发现了两种不同的算法。选项“
ward.D”(相当于wardR 版本 <= 3.0.3 中唯一的 Ward 选项“”)使用的选项没有实现 Ward(1963)的聚类标准,而选项“ward.D2”实现了该标准(Murtagh and Legendre 2013)。对于后者,差异在集群更新之前被平方。
平方会改进算法吗?
来自 Murtaugh, F. 和 Legendre, P. (2011) 的结论。Ward 的层次聚类方法:聚类准则和凝聚算法,ArXive:1111.6285v2 ( pdf ):
两种算法,Ward1和Ward2 ...当应用于相同的距离矩阵 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.