greedy_modularity_communities#

greedy_modularity_communities(G, weight=None, resolution=1, cutoff=1, best_n=None, n_communities=None)[源代码]#

使用贪婪的模块化最大化找到G中的社区。

该函数使用Clauset-Newman-Moore贪婪模块化最大化 [2] 找出模块化程度最大的社区划分。

贪婪模块化最大化从其自己社区中的每个节点开始,重复加入导致最大模块化的社区对,直到不可能进一步增加模块化(最大)。两个关键字参数调整停止条件。 cutoff 是社区数量的下限,因此您可以在达到最大值之前停止该过程(用于节省计算时间)。 best_n 是社区数量的上限,因此您可以继续该过程,直到最多剩余n个社区,即使更多社区出现最大模块化。要恰好获得n个社区,请同时设置 cutoffbest_n 转到n.

此函数最大化广义模块化,其中 resolution 是分辨率参数,通常表示为 \(\gamma\) 。看见 modularity()

参数
G网络X图表
weight字符串或无,可选(默认值=无)

保存用作权重的数值的边属性的名称。如果没有,则每条边的权重为1。阶数是与节点相邻的边权重的总和。

resolution浮动,可选(默认值=1)

如果分辨率小于1,则模块化有利于更大的社区。大于1表示支持较小的社区。

cutoff整型,可选(默认值=1)

合并过程停止的最小社区数量。即使模块化没有最大化,这个过程也止步于这个数量的社区。目标是让用户提前停止进程。如果发现最大的模块化,则该过程在截止点之前停止。

best_n整型或无型,可选(默认为无)

合并过程不会停止的社区的最大数量。这迫使社区合并在模块化开始降低之后继续进行,直到 best_n 社区依然存在。如果 None ,不要强迫它继续超过最大值。

n_communities整型或无型,可选(默认为无)

3.0 版后已移除: 这个 n_communities 参数已弃用-请使用 cutoff 和/或 best_n 取而代之的是为所需的社区数量设定界限。

合并过程停止的最小社区数量。即使模块化没有最大化,这个过程也止步于这个数量的社区。目标是让用户提前停止进程。如果发现最大的模块化,则该过程在截止点之前停止。

返回
社区:列表

冻结节点集的列表,每个社区一个。按长度排序,最大的社区在前。

加薪
ValueError如果

[1, G.number_of_nodes()], or if best_n < cutoff. Also raised if cutoff is used with the deprecated n_communities parameter.

参见

modularity

工具书类

1

约翰·纽曼,M.E.J.《网络:导论》,牛津大学出版社2011年版,第224页。

2

Clauset,A.,Newman,M.E.和Moore,C.,“在非常大的网络中发现社区结构”,《物理评论》E 70(6),2004年。

3

Reichardt和Bornholdt:《社区探测的统计力学》物理学。E74版本,2006年。

4

加权网络的分析>《物理评论》E70(5Pt2):056131,2004年。

实例

>>> from networkx.algorithms.community import greedy_modularity_communities
>>> G = nx.karate_club_graph()
>>> c = greedy_modularity_communities(G)
>>> sorted(c[0])
[8, 14, 15, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]