gpt4 book ai didi

python - Betweenness_centrality 带来意想不到的结果

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:23 25 4
gpt4 key购买 nike

下面是使用 Python 2.7 在 networkx 中创建一个非常简单的图的代码,并调用返回 Betweenness_centrality:

import networkx as nx
G = nx.Graph()
G.add_nodes_from([1,3])
G.add_edge(1,2)
G.add_edge(2,3)
G.add_edge(1,3)
G[1][2]['weight']=4400
G[2][3]['weight']=4100
G[1][3]['weight']=1500
print nx.betweenness_centrality(G,weight='weight')

我期望看到权重基本上是按分配的,但权重全部为零:

{1:0.0、2:0.0、3:0.0}

我显然错过了一些简单的东西,并且无法从在线文档中看到它是什么。谢谢。

最佳答案

networkx. Betweenness_centrality() 的默认值(也可以说是标准定义)不包括端点计数。因此,对于您的 K3 图,每个节点上的介数为 0。如果您想计算端点数量,请使用

In [1]: import networkx as nx

In [2]: G = nx.Graph()

In [3]: G.add_nodes_from([1,3])

In [4]: G.add_edge(1,2)

In [5]: G.add_edge(2,3)

In [6]: G.add_edge(1,3)

In [7]: G[1][2]['weight']=4400

In [8]: G[2][3]['weight']=4100

In [9]: G[1][3]['weight']=1500

In [10]: print(nx.betweenness_centrality(G,weight='weight',endpoints=True))
{1: 2.0, 2: 2.0, 3: 2.0}

请注意,“权重”属性用于查找最短路径,并不直接计入介数分数。例如,循环中的非对称路径:

In [1]: import networkx as nx

In [2]: G = nx.cycle_graph(4)

In [3]: nx.set_edge_attributes(G,'weight',1)

In [4]: print(nx.betweenness_centrality(G,weight='weight'))
{0: 0.16666666666666666, 1: 0.16666666666666666, 2: 0.16666666666666666, 3: 0.16666666666666666}

In [5]: G[0][1]['weight']=5

In [6]: print(nx.betweenness_centrality(G,weight='weight'))
{0: 0.0, 1: 0.0, 2: 0.6666666666666666, 3: 0.6666666666666666}

关于python - Betweenness_centrality 带来意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com