我在R中使用fpc包来执行集群验证。
我可以使用函数cluster.stats()将我的聚类与外部分区进行比较,并计算几个指标,如Rand Index,entropy e.t.c。
但是,我正在寻找一个名为“纯度”或“群集准确度”的指标,该指标在http://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-clustering-1.html中定义
我想知道R中是否有这项措施的实施。
感谢, 切特
答案 0 :(得分:13)
我不知道现成的功能,但是您可以使用链接中的公式自行完成这一操作:
ClusterPurity <- function(clusters, classes) {
sum(apply(table(classes, clusters), 2, max)) / length(clusters)
}
我们可以在一些随机分配中测试它,我相信我们希望纯度为1 /类别数:
> n = 1e6
> classes = sample(3, n, replace=T)
> clusters = sample(5, n, replace=T)
> ClusterPurity(clusters, classes)
[1] 0.334349