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

最佳答案

不久,较大的权重对于传入的节点更好。

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得分更高。

关于python - 加权边缘如何影响networkx中的PageRank?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9136539/

10-11 11:50