networkx.algorithms.community.quality.modularity
的用法。用法:
modularity(G, communities, weight='weight', resolution=1)
返回图的给定分区的模块化。
模块化在[1]中定义为
其中
G
的邻接矩阵, 是 的度数, 是分辨率参数, 是1如果 和 在同一个社区,否则为 0。 是边数, 是根据[2](并通过一些代数验证)这可以简化为
其中 sum 迭代所有社区 , 是边数, 是社区的 intra-community 链接数 , 是社区中节点的度数之和 和 是分辨率参数。
分辨率参数设置intra-group 边和inter-group 边之间的任意权衡。通过分析具有多个 gamma 值的同一网络,然后组合结果,可以发现更复杂的分组模式 [3]。也就是说,简单地使用 gamma=1 是很常见的。更多关于伽玛选择的信息请参见[4]。
第二个公式是实际用于模块化计算的公式。对于有向图,第二个公式将 替换为 。
- G:NetworkX 图表
- communities:节点集的列表或可迭代
这些节点集必须代表 G 节点的一个分区。
- weight:字符串或无,可选(默认=”weight”)
保存用作权重的数值的边属性。如果 None 或边不具有该属性,则该边的权重为 1。
- resolution:浮点数(默认=1)
如果分辨率小于 1,则模块化有利于更大的社区。大于 1 有利于较小的社区。
- Q:浮点数
分区的模块化。
- NotAPartition
如果
communities
不是G
的节点的分区。
参数:
返回:
抛出:
参考:
- 1
M. E. J. Newman “Networks: An Introduction”, page 224. Oxford University Press, 2011.
- 2
Clauset, Aaron, Mark EJ Newman, and Cristopher Moore. “Finding community structure in very large networks.” Phys. Rev. E 70.6 (2004). <https://arxiv.org/abs/cond-mat/0408187>
- 3
Reichardt and Bornholdt “Statistical Mechanics of Community Detection” Phys. Rev. E 74, 016110, 2006. https://doi.org/10.1103/PhysRevE.74.016110
- 4
M. E. J. Newman, “Equivalence between modularity optimization and maximum likelihood methods for community detection” Phys. Rev. E 94, 052315, 2016. https://doi.org/10.1103/PhysRevE.94.052315
例子:
>>> import networkx.algorithms.community as nx_comm >>> G = nx.barbell_graph(3, 0) >>> nx_comm.modularity(G, [{0, 1, 2}, {3, 4, 5}]) 0.35714285714285715 >>> nx_comm.modularity(G, nx_comm.label_propagation_communities(G)) 0.35714285714285715
相关用法
- Python NetworkX modularity_matrix用法及代码示例
- Python NetworkX multi_source_dijkstra_path用法及代码示例
- Python NetworkX minimum_spanning_edges用法及代码示例
- Python NetworkX maximal_independent_set用法及代码示例
- Python NetworkX make_small_graph用法及代码示例
- Python NetworkX maximum_spanning_tree用法及代码示例
- Python NetworkX minimum_edge_cut用法及代码示例
- Python NetworkX minimum_st_node_cut用法及代码示例
- Python NetworkX minimum_spanning_tree用法及代码示例
- Python NetworkX minimum_node_cut用法及代码示例
- Python NetworkX minimum_cut_value用法及代码示例
- Python NetworkX multi_source_dijkstra_path_length用法及代码示例
- Python NetworkX min_cost_flow_cost用法及代码示例
- Python NetworkX maximum_flow用法及代码示例
- Python NetworkX min_cost_flow用法及代码示例
- Python NetworkX maximum_flow_value用法及代码示例
- Python NetworkX minimum_cut用法及代码示例
- Python NetworkX make_max_clique_graph用法及代码示例
- Python NetworkX maximum_spanning_edges用法及代码示例
- Python NetworkX minimum_st_edge_cut用法及代码示例
- Python NetworkX minimum_cycle_basis用法及代码示例
- Python NetworkX max_flow_min_cost用法及代码示例
- Python NetworkX multi_source_dijkstra用法及代码示例
- Python NetworkX multipartite_layout用法及代码示例
- Python NetworkX negative_edge_cycle用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.community.quality.modularity。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。