Почему неверный вывод Networkx для межцентровости? - PullRequest
1 голос
/ 13 июня 2019

Я хочу вычислить промежуточность для простого графа с 6 узлами:

G=nx.Graph()
e=[(1,2),(1,5),(2,3),(3,6),(5,6),(4,2),(4,3)]
G.add_edges_from(e)
btw=nx.betweenness_centrality(G)

Как я рассчитал для каждого узла, результат должен быть:

{1: 1.5, 2: 2.5, 5: 1, 3: 2.5, 6: 1.5, 4: 0}

Но вывод:

{1: 0.15000000000000002,
 2: 0.25,
 5: 0.1,
 3: 0.25,
 6: 0.15000000000000002,
 4: 0.0} 

В чем причина?

1 Ответ

2 голосов
/ 13 июня 2019

Кажется, вы вычисляете ненормализованную центральность, тогда как по умолчанию betweenness_centrality имеет normalized, установленное на True.

Вместо этого установите False:

G=nx.Graph()
e=[(1,2),(1,5),(2,3),(3,6),(5,6),(4,2),(4,3)]
G.add_edges_from(e)
btw=nx.betweenness_centrality(G, normalized=False)
# {1: 1.5, 2: 2.5, 5: 1.0, 3: 2.5, 6: 1.5, 4: 0.0}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...