使用平均链接对`hclust;和`agnes;的不同结果 [英] Different results for `hclust' and `agnes' using average link

查看:0
本文介绍了使用平均链接对`hclust;和`agnes;的不同结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在对一个定制的模拟相似性矩阵应用一个简单的聚类过程。(https://github.com/ewouddt/Files/blob/master/sim_col.RData)

但是,我注意到在使用平均链接时hclustagnes过程之间的差异(注意:我也观察到了完整链接的相同行为)

load("sim_col.RData") # A 606 x 606 similarity matrix
library(cluster)

c1 <- hclust(as.dist(1-sim_col),method="average")
c2 <- as.hclust(agnes(as.dist(1-sim_col),diss=TRUE,method="average"))

dev.new()
plot(c1)
dev.new()
plot(c2)

cut1 <- cutree(c1,k=20)
cut2 <- cutree(c2,k=20)
cut1
cut2

sort(table(cut1))
cut1
# cut1
# 10  18   9  19   3  20   4  11   7  15  17   5   6  12  16   2   8   1  13  14 
#  2   5   7   8  11  13  14  14  15  19  19  21  23  26  27  31  33  80  95 143
sort(table(cut2))
# cut2
# 18  20  19  11  17   7   8   4  12   5   9   3  10  16   2   6  14  13   1  15 
#  4   6   8   9   9  13  13  14  15  16  17  19  20  29  31  31  54  62 115 121

正如预期的那样,由于hclustagnes的顺序不同,树状图看起来不同。 然而,剪切标签(例如,在k=20)会显示不同(尽管相似)的观察结果。(例如,您可以看到两个结果的标签数量不同)

是我犯了一个愚蠢的错误,还是hclustagnes在砍树后不应该返回完全相同的结果? 如果两个过程不应该返回相同的结果,那么这两个函数的差异在哪里?

推荐答案

除单链路外,集群结果可能不唯一确定。

考虑以下数据集:

1 2 3 4

有三个最小值:合并%1和%2、%2和%3或%3和%4。

除单链接外,我们将根据是先合并2和3还是合并其他对之一而获得不同的结果。

尤其是,通常的算法将不能保证找到最优解。如果你想保证这一点,你很可能是NP-完全的。但这也可能无关紧要。

这篇关于使用平均链接对`hclust;和`agnes;的不同结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆