Ссылаясь на: https://stackoverflow.com/a/44907357/305883
Я использую реализацию python-louvain для обнаружения сообщества в полном взвешенном графе.
Но я получаю только один раздел, содержащий все узлы.
Код:
import community # this is pip install python-louvain
import networkx as nx
import matplotlib.pyplot as plt
# Replace this with your networkx graph loading depending on your format !
# using graph g as a completed graph, weights between 0 and 1
#first compute the best partition
partition = community.best_partition(g)
#drawing
size = float(len(set(partition.values())))
pos = nx.spring_layout(g)
count = 0.
for com in set(partition.values()) :
count = count + 1.
list_nodes = [nodes for nodes in partition.keys() if partition[nodes] == com]
nx.draw_networkx_nodes(g, pos, list_nodes, node_size = 20, node_color = str(count / size))
nx.draw_networkx_edges(g, pos, alpha=0.1)
plt.show()
Я хотел бы извлечь сообщества из полной взвешенной сети.
Я также попробовал girvan_newman (https://networkx.github.io/documentation/networkx-2.0/reference/algorithms/generated/networkx.algorithms.community.centrality.girvan_newman.html), но смог обнаружить только 2 сообществаполного графа из 200 узлов (с 198 и 2 узлами).
Правильно ли работает Лувен для обнаружения сообществ в полном графе? Лучшие предложения?