Обнаружение сообщества louvain в полных взвешенных сетях возвращает только 1 раздел - PullRequest
0 голосов
/ 16 мая 2019

Ссылаясь на: 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 узлами).

Правильно ли работает Лувен для обнаружения сообществ в полном графе? Лучшие предложения?

1 Ответ

1 голос
/ 17 мая 2019

Возможно, что выбор используемой модели для этого случая вернет один блок со всеми узлами, что означает, что недостаточно статистических данных для большего количества блоков.

Вы можете попробовать пакет Peixotos graph-tool, который имеет реализацию взвешенной стохастической блочной модели .

...