Détection de communautés dans Networkx

Je suis étudiant à propos de la détection de communautés dans les réseaux.

Je suis l'utiliser igraph et Python

Pour le nombre optimal de communautés en termes de modularité mesure:

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

Pour fournir le nombre désiré de communautés:

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

Cependant, je tiens à le faire à l'aide de networkx. Je sais que d'optimaliser le nombre de communautés en termes de modularité mesure:

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]

Mais je ne peux pas obtenir le nombre désiré de communautés. Existe-il un algorithme pour cela, à l'aide de Networkx?

C'est un très récents travaux, mais il est extrêmement utile: journals.aps.org/prl/abstract/10.1103/PhysRevLett.117.078301

OriginalL'auteur Alan Valejo | 2014-02-27