我正在使用社区模块(http://perso.crans.org/aynaud/communities/api.html)的最佳分区功能来检测图表中的社区。 p>
然而,一些社区高度连接,因此算法倾向于将它们分组。
我想通过设置每个社区的最大大小来区分这些社区(例如,当每个社区的最大大小为10时,算法应该尝试并最大化模块化)。
我该怎么做?老实说,我不知道从哪里开始。我应该遍历函数输出的字典,如果任何社区大于特定大小,重新运行算法?这就是我现在所处的位置。
我100%愿意接受检测除此模块以外的社区的其他方法。
以下是分区的代码:
G = nx.read_graphml(graphfile)
G = nx.Graph(G)
#G = nx.DiGraph.to_undirected(G)
#finds best community using louvain
partition = community.best_partition(G)
#adds partition/community number as attribute named 'modularitygroup'
for n,d in G.nodes_iter(data=True):
d['group'] = partition[n]