2

我试图使用调整后的兰德指数来比较聚类结果。这里,我以 Iris 数据集为例。这些是代码:

iris.data=subset(iris, select=-Species)
iris.eucdist <- dist(iris.data, method="euclidean")
iris.sqeucdist <- iris.eucdist^2
iris.hc <- hclust(iris.sqeucdist, "ward")
plot(iris.hc, main="Dendrogram of Ward's Method", label=iris$Species)
table(cutree(iris.hc, 3), iris$Species)

##        setosa versicolor virginica
##   1     50          0         0
##   2      0         49        15
##   3      0          1        35

首先,我使用上表中的值手动计算 ARI(Hubert and Arabie,1985)。答案是 0.7311986。但是,当我使用 R 时,我无法得到相同的答案。

library(mclust)
U=c(50,0,0,50,0,49,1,50,0,15,35,50)
V=c(50,0,0,50,0,49,15,64,0,1,35,36)
adjustedRandIndex(U,V)
## [1] 0.6961326

也许,我输入值的方式是错误的。有没有办法实现这一点,以便 R 的答案与手动计算相同?

4

1 回答 1

1

查看?adjustedRandIndex建议(状态) x并且y应该是类标签或类似的向量,而不是交叉制表的结果

adjustedRandIndex(cutree(iris.hc, 3), iris$Species)

## [1] 0.7311986
于 2012-07-18T05:41:57.903 回答