cdlib.evaluation.newman_girvan_modularity

cdlib.evaluation.newman_girvan_modularity(graph: Graph, communities: object, **kwargs: dict) object

计算分区内社区边的比例与根据零模型分布的预期此类边数之间的差异。

在模块化的标准版本中,零模型保留了所考虑图的预期度序列。换句话说,模块化将真实的网络结构与一个对应的网络结构进行比较,其中节点在没有任何邻居偏好的情况下连接。

\[Q(S) = \frac{1}{m}\sum_{c \in S}(m_S - \frac{(2 m_S + l_S)^2}{4m})\]

其中 \(m\) 是图的边数,\(m_S\) 是社区边数,\(l_S\) 是从 S 中的节点到 S 外部节点的边数。

Parameters:
  • graph – 一个 networkx/igraph 对象

  • communities – NodeClustering 对象

Returns:

FitnessResult 对象

示例:

>>> from cdlib.algorithms import louvain
>>> from cdlib import evaluation
>>> g = nx.karate_club_graph()
>>> communities = louvain(g)
>>> mod = evaluation.newman_girvan_modularity(g,communities)
References:

  1. Newman, M.E.J. 和 Girvan, M. 在网络中寻找和评估社区结构。 物理评论 E 69, 26113(2004).