R聚类纯度'公

时间:2012-02-12 23:45:34

标签: r cluster-analysis

我在R中使用fpc包来执行集群验证。

我可以使用函数cluster.stats()将我的聚类与外部分区进行比较,并计算几个指标,如Rand Index,entropy e.t.c。

但是,我正在寻找一个名为“纯度”或“群集准确度”的指标,该指标在http://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-clustering-1.html中定义

我想知道R中是否有这项措施的实施。

感谢, 切特

1 个答案:

答案 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