R聚类'纯度'指标

che*_*het 10 r cluster-analysis

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

我可以使用函数cluster.stats()来比较我的聚类和外部分区,并计算几个指标,如兰德指数,熵等

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

我想知道在R中是否有这个措施的实施

谢谢,切特

Joh*_*lby 13

我不知道现成的功能,但这里有一种方法可以自己使用链接中的等式:

ClusterPurity <- function(clusters, classes) {
  sum(apply(table(classes, clusters), 2, max)) / length(clusters)
}
Run Code Online (Sandbox Code Playgroud)

在这里,我们可以在一些随机分配上测试它,我相信我们期望纯度为1 /类别数:

> n = 1e6
> classes = sample(3, n, replace=T)
> clusters = sample(5, n, replace=T)
> ClusterPurity(clusters, classes)
[1] 0.334349
Run Code Online (Sandbox Code Playgroud)