我尝试使用调整后的兰德指数来比较群集结果。在这里,我以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和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的答案与手动计算相同?
答案 0 :(得分:1)
查看?adjustedRandIndex
建议(状态)x
和y
应该是类标签或类似标签的向量,而不是交叉列表的结果
adjustedRandIndex(cutree(iris.hc, 3), iris$Species)
给出
## [1] 0.7311986