Как взвешенные края влияют на PageRank в networkx?

Я играю с networkx (графическая библиотека на python), и я нашел документацию, в которой алгоритм PageRank учитывает весы с учетом при подсчете очков, но мне было интересно, лучше ли более крупные или более низкие веса лучше?

Ответы

Ответ 1

В скором времени большие веса лучше для входящих узлов.

PageRank работает над ориентированным взвешенным графиком. Если на странице A есть ссылка на страницу B, то оценка для B увеличивается, то есть чем больше входных данных на странице B (node), тем выше ее оценка.

Статья Википедии о PageRank для более подробной информации.

Изменить: сделайте эксперимент. Создайте ориентированный граф с тремя узлами и двумя направленными ребрами с равными весами.

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}

Как вы видите, node C получил более высокий балл с увеличением веса входящего края.