How do weighted edges affect PageRank in networkx?

前端 未结 1 1110
暗喜
暗喜 2020-12-23 17:49

I\'m playing around with networkx (graph library in python) and I found documentation saying the PageRank algorithm takes edge weights into account when scoring, but I was w

相关标签:
1条回答
  • 2020-12-23 18:03

    Shortly, large weights are better for incoming nodes.

    PageRank works on a directed weighted graph. If page A has a link to page B, then the score for B goes up, i.e. the more input the page B (node) have, the higher is its score.

    Wikipedia article on PageRank for further details.

    Edit: let's make an experiment. Create a directed graph with 3 nodes and two directed edges with equal weights.

    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}
    

    Now, increase the weight of the (A,C) edge:

    D['A']['C']['weight']=1
    print nx.pagerank(D)    
    
    >> {'A': 0.259740259292235, 'C': 0.40692640737443164, 'B': 0.3333333333333333}
    

    As you see, the node C got higher score with increasing weight of the incoming edge.

    0 讨论(0)
提交回复
热议问题