16
我正在玩networkx(python中的图库),我发现文档说PageRank算法在计分时需要考虑边权重,但是我想知道更大的边权重是更好还是更低?加权边缘如何影响networkx中的PageRank?
我正在玩networkx(python中的图库),我发现文档说PageRank算法在计分时需要考虑边权重,但是我想知道更大的边权重是更好还是更低?加权边缘如何影响networkx中的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得到更高的分数随着流入边的权重。
真棒谢谢你,马克斯! – Lostsoul 2012-02-05 00:08:17
我不确定“PageRank在有向加权图上工作”是否正确。我的理解是,通常PageRank中使用的边不是加权的,节点之间或者没有边。这是有道理的,因为你不能在两页之间有一半的链接。虽然看起来networkx中的pagerank方法确实允许对边进行加权,就像他们可以使用[TextRank]一样(http://digital.library.unt.edu/ark:/67531/metadc30962/m2/1/high_res_d /Mihalcea-2004-TextRank-Bringing_Order_into_Texts.pdf)(第2.2节),它基于PageRank。 – jksnw 2015-03-28 17:54:47
你为什么要分配一个链接更多的重量?是否需要执行才能确定某些链接的价值更高? (就像身体中的链接与评论中的链接一样?) – Xeoncross 2016-10-24 17:13:35