Graph 在具有绝对权重的加权图上计算pagerank
我面临的问题与此链接()中表达的问题相同 本质上,我使用networkx计算图形上的pagerank。因为,pagerank计算首先将图形转换为右随机矩阵(所有输出边均归一化为一) 我需要的是一种不使边权重正常化的方法。因此,如果一个节点只有一个权重为0.1的传出边,而另一个节点只有一个权重为0.05的传出边,我希望在计算pagerank时使用此信息(而不是将每个节点归一化为1) 有人知道修改pagerank的正确方法是什么吗 提前感谢,,Graph 在具有绝对权重的加权图上计算pagerank,graph,networkx,pagerank,stochastic,Graph,Networkx,Pagerank,Stochastic,我面临的问题与此链接()中表达的问题相同 本质上,我使用networkx计算图形上的pagerank。因为,pagerank计算首先将图形转换为右随机矩阵(所有输出边均归一化为一) 我需要的是一种不使边权重正常化的方法。因此,如果一个节点只有一个权重为0.1的传出边,而另一个节点只有一个权重为0.05的传出边,我希望在计算pagerank时使用此信息(而不是将每个节点归一化为1) 有人知道修改pagerank的正确方法是什么吗 提前感谢,, Amit也许你在想拉里和谢尔盖所谓的“个性化PageR
Amit也许你在想拉里和谢尔盖所谓的“个性化PageRank”?可以在算法的随机跳跃部分调整节点的权重,以创建偏差。例如
In [1]: import networkx as nx
In [2]: G = nx.DiGraph()
In [3]: G.add_path([1,2,3,4])
In [4]: nx.pagerank_numpy(G)
Out[4]:
{1: 0.11615582303660349,
2: 0.2148882726177166,
3: 0.29881085476166286,
4: 0.370145049584017}
In [5]: nx.pagerank_numpy(G,personalization={1:1,2:10,3:1,4:1})
Out[5]:
{1: 0.031484535189871404,
2: 0.341607206810105,
3: 0.3218506609784609,
4: 0.3050575970215628}
例如,请参见此处的讨论我有一个不完全随机的图(即边权重是绝对的,并且在节点之间是一致的)。我改变了networkx的pagerank实现,以避免将初始矩阵转换为正确的随机矩阵,从而给出正确的答案。然而,这意味着pagerank有时不会收敛,因为边的总和大于1,但通常在30-40次迭代后排名相当一致 从本质上讲,从networkx代码(algorithms/link\u analysis/pagerank\u alg.py)中删除这一行可以:-
W=x.Randomic_graph(D,weight=weight)我尝试添加一个具有剩余边权重的虚拟节点,但pagerank无法收敛。嗨,Aric,谢谢你的帮助。我确实在使用个性化的pagerank来提升某些节点。然而,我面临的问题略有不同。我有一个不是完全随机的图(即边权重是绝对的,并且在节点之间是一致的)。我改变了networkx的pagerank实现,以避免将初始矩阵转换为正确的随机矩阵,从而给出正确的答案。然而,这意味着pagerank有时不会收敛,因为边的总和大于1,但通常在30-40次迭代后排名相当一致。