gpt4 book ai didi

python - Networkx 中的社区检测

转载 作者:太空狗 更新时间:2023-10-29 17:34:11 27 4
gpt4 key购买 nike

我正在研究网络中的检测社区。

我正在使用 igraph 和 Python

对于模块化度量方面的最佳社区数量:

from igraph import *
karate = Nexus.get("karate")
cl = karate.community_fastgreedy()
cl.as_clustering().membership

为了提供所需数量的社区:

from igraph import *
karate = Nexus.get("karate")
cl = karate.community_fastgreedy()
k=2
cl.as_clustering(k).membership

不过,我喜欢使用 networkx 来做到这一点。我知道根据模块化措施获得最佳社区数量:

import community # --> http://perso.crans.org/aynaud/communities/
import fastcommunity as fg # --> https://networkx.lanl.gov/trac/ticket/245
import networkx as nx

g = nx.karate_club_graph()
partition = community.best_partition(g)
print "Louvain Modularity: ", community.modularity(partition, g)
print "Louvain Partition: ", partition

cl = fg.communityStructureNewman(g)
print "Fastgreed Modularity: ", cl[0]
print "Fastgreed Partition: ", cl[1]

但我无法获得所需的社区数量。是否有一些算法,使用 Networkx?

最佳答案

我也是 networkx 和 igraph 的新手,我使用了 Gephi,一种数据可视化工具/软件。它与您现在使用的 networkx 中的社区检测算法具有相同的社区检测算法。具体来说,在 http://perso.crans.org/aynaud/communities/

It uses the louvain method described in Fast unfolding of communities in large networks, Vincent D Blondel, Jean-Loup Guillaume, Renaud Lambiotte, Renaud Lefebvre, Journal of Statistical Mechanics: Theory and Experiment 2008(10), P10008 (12pp)

你无法获得想要的社区数量,据我所知,有两种方法值得尝试:

  • 使用 Gephi。您可以使用 gephi 并且有一个名为 resolution 的参数可以改变您获得的社区的大小。
  • 使用 NetworkX。这一次,我们可能不会再使用 best_partition(G) 了。但是使用 partition_at_level(dendrogram, level) ,我想这可能会有所帮助。

检查 source code此处了解更多信息。

关于python - Networkx 中的社区检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22070196/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com