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个社区,请同时设置cutoff
和best_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 ifbest_n
<cutoff
. Also raised ifcutoff
is used with the deprecatedn_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]