【问题标题】:Evaluation metrics for community detection algorithms社区检测算法的评估指标
【发布时间】:2015-05-11 04:55:38
【问题描述】:

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

这些选择的评价指标是否足够?

例如,Rank Index 是 RI(P,R)= (a+d)/(a+b+c+d) 其中 a、b、c 和 d 是节点对的数量根据P和R分别在同一个社区,根据P在同一社区但根据R在不同社区,在P给定的不同社区但在R给定的同一社区,以及根据P给定的不同社区P 和 R,并且 P = {p1, p2, . . . , pk} 是应用于图 G = 和 R = {r1, r2, 的社区检测算法的输出。 . . , rn} 是真正的社区结构。

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

【问题讨论】:

  • 为清晰起见重新措辞。

标签: detection ranking evaluation modularity


【解决方案1】:

您混淆了两种类型的度量:内部标准和外部标准,定义为集群问题(请参阅this page)。

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

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

确实,您列出的所有措施都需要对节点集进行分区。你提到你的算法忽略了某些节点,所以这可能是一个问题。一个基本的解决方法是考虑每个被忽略的节点构成它自己的社区。或者,为重叠社区结构定义的某些措施能够处理这种情况。

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

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

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

【讨论】:

    猜你喜欢
    • 2014-12-10
    • 2020-04-05
    • 2014-08-02
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2019-04-15
    • 2018-08-15
    • 1970-01-01
    相关资源
    最近更新 更多