社区检测算法的评估指标

时间:2015-03-09 21:29:49

标签: detection ranking evaluation modularity

我想评估和比较我在R中的社区检测算法的结果。我的算法不允许重叠,并且有一些节点没有被处理。例如,对于扎卡里空手道俱乐部,我有1个节点未经处理。 我发现了很多指标(NMI,ARI,Modulaity(Q),Purity,Rank Index ......),我不知道哪些是最好的。目前,我使用模块化,纯度和等级指数。

这些评估指标是否足够?

例如,对于秩索引,RI(P,R)=(a + d)/(a + b + c + d)其中a,b,c和d是节点对的数量根据P和R分别在同一社区中,根据P在同一社区中,但在不同的社区中根据R,在不同的社区中由P给出但在同一社区中由R给出,并且在不同的社区中根据P和R都有,P = {p1,p2 ,. 。 。 ,pk}是应用于图G =<的社区检测算法的输出。 V,E>,并且R = {r1,r2,... 。 。 ,是真正的社区结构。

因此,如果我处理大图,我该如何计算这些值?我在哪里可以找到R(真正的社区结构)?

1 个答案:

答案 0 :(得分:0)

您混淆了两种类型的措施:内部和外部标准,如针对群集问题所定义的(请参阅this page)。

  • 内部标准:盲目评估检测到的社区结构的质量。这意味着您没有任何参考结构可以比较估计的结构。例如:模块化,电导......
  • 外部标准:您将估计的社区结构与参考社区结构(即地面实况,黄金标准等)进行比较。例:NMI,(A)RI,纯度......

不是最好的'衡量:它们都是不同的,并且依赖于如何量化社区检测算法的性能的不同概念。一个更相关的问题是:哪些措施适合您的情况?

实际上,您列出的度量都需要节点集的分区。您提到您的算法会忽略某些节点,因此这可能是个问题。一个基本的解决方法是考虑每个被忽略的节点构成自己的社区。或者,为重叠社区结构定义的某些措施能够处理这种情况。

另一个重点是您用于测试算法的数据。您是否拥有这些数据的实际社区结构?如果没有,那么你根本就不能使用外部标准。

请注意,大多数外部标准认为社区结构只是节点集的分区(在数学意义上)。因此,它们依赖于参考和估计的分区的比较。这是因为它们都来自聚类分析领域。这个问题是他们完全没有考虑到网络链接。然而,社区结构不仅仅是节点集的分区:链接在此分区上的分布方式非常重要。因此,您可能希望以更加定性的方式评估社区结构,例如通过比较检测到的社区的拓扑属性(请参阅Orman'12)。您也可以更改现有度量,使其考虑链接(请参阅Labatut'13)。并不是说我特别想引用自己,但论文似乎很有用。

关于这些措施的具体处理,您可能希望查看用于执行社区检测的工具的文档:其中一些与性能度量捆绑在一起。例如,如果您使用igraph,则有function just for that