为什么中间中心性的 Networkx 输出是错误的?

Moh*_*.sh 2 python networkx

我想计算一个有 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)
Run Code Online (Sandbox Code Playgroud)

当我计算每个节点时,输出应该是:

{1: 1.5, 2: 2.5, 5: 1, 3: 2.5, 6: 1.5, 4: 0}
Run Code Online (Sandbox Code Playgroud)

但输出是:

{1: 0.15000000000000002,
 2: 0.25,
 5: 0.1,
 3: 0.25,
 6: 0.15000000000000002,
 4: 0.0} 
Run Code Online (Sandbox Code Playgroud)

是什么原因?

yat*_*atu 5

看来您正在计算非标准化中心性,而默认情况下betweenness_centralitynormalized设置为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}
Run Code Online (Sandbox Code Playgroud)