如果 hclust() 中的 ward.D 不是 Ward 的标准,它会实现什么算法?

机器算法验证 r 聚类 病房
2022-02-11 09:46:24

选项“ward.D”使用的那个(相当于 R 版本 <= 3.0.3 中唯一的 Ward 选项“ward”)没有实现 Ward(1963)的聚类标准,而选项“ward.D2”实现了该标准(穆尔塔和勒让德 2014)。

http://stat.ethz.ch/R-manual/R-patched/library/stats/html/hclust.html

显然 ward.D 没有正确执行 Ward 的标准。尽管如此,它似乎在它产生的集群方面做得很好。如果不是 Ward 的标准,method="ward.D" 会实现什么?

参考

Murtagh, F. 和 Legendre, P. (2014)。Ward 的层次凝聚聚类方法:哪些算法实现了 Ward 的准则?分类杂志31 (3), 274-295。

3个回答

ward.D&之间的唯一区别ward.D2是输入参数。

hclust(dist(x)^2,method="ward.D")~hclust(dist(x)^2,method="ward")

相当于: hclust(dist(x),method="ward.D2")

您可以找到研究论文: Ward's Hierarchical Clustering Method: Clustering Criterion and Agglomerative Algorithm

Ward2标准值是“在距离尺度上,而Ward1标准值是“在距离平方尺度上”。

相关手稿在这里

ward.D 和 ward.D2 之间的区别是手稿中称为 Ward1 和 Ward2 的两个聚类标准之间的区别。

它基本上归结为仅在 Ward2 (ward.D2) 中直接正确实现 Ward 算法的事实,但也可以使用 Ward1 (ward.D),如果在将欧几里德距离 (from dist()) 输入到hclust()使用 ward.D 作为方法。

例如,SPSS 也实现了 Ward1,但警告用户距离应该平方以获得 Ward 标准。从这个意义上说,ward.D 的实现并没有被弃用,但是保留它以实现向后兼容性可能是一个好主意。      

我遇到了与“Ward1 (ward.D)”正在优化的目标函数相对应的研究论文:Hierarchical Clustering via Joint Between-Within Distances: Extending Ward's Minimum Variance Method事实证明,R 对“Ward1 (ward.D)”的实现相当于最小化集群组之间的能量距离。

2.1 集群e-距离和目标函数

A={a1,,an1}B={b1,,bn2}是的非空子集Rd. 定义组间,或e-距离e(A,B), 之间AB作为

e(A,B)=n1n2n1+n2(2n1n2i=1n1j=1n2aibj(1)1n12i=1n1j=1n1aiaj1n22i=1n2j=1n2bibj).