加权边缘如何影响networkx中的PageRank?

时间:2012-02-03 22:45:57

标签: python graph-theory pagerank networkx

我正在使用networkx(python中的图形库),我发现文档说PageRank算法在评分时会考虑边缘权重,但我想知道更大边缘权重是更好还是更低权重更好?

1 个答案:

答案 0 :(得分:26)

很快,对于传入节点来说,较大的权重会更好。

PageRank适用于有向加权图。如果页面A有到页面B的链接,则B的分数上升,即页面B(节点)具有的输入越多,其得分越高。

Wikipedia article on PageRank了解更多详情。

修改:让我们做一个实验。创建一个有3个节点和两个有相同权重的有向边的有向图。

import networkx as nx
D=nx.DiGraph()
D.add_weighted_edges_from([('A','B',0.5),('A','C',0.5)])
print nx.pagerank(D)

>> {'A': 0.259740259292235, 'C': 0.3701298703538825, 'B': 0.3701298703538825}

现在,增加(A,C)边缘的重量:

D['A']['C']['weight']=1
print nx.pagerank(D)    

>> {'A': 0.259740259292235, 'C': 0.40692640737443164, 'B': 0.3333333333333333}

如您所见,节点C随着传入边缘权重的增加而得分越高。