Обнаружение сообщества в Networkx
Я учусь об обнаружении сообществ в сетях.
Я использую 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?