网络 X 中页面排名函数的参数"weight"有什么作用?



根据这篇文章,加权二合字母的权重对图表的页面排名有影响。我已经尝试了那篇文章中的代码:

from networkx.algorithms.link_analysis.pagerank_alg import pagerank_numpy
ddd=nx.DiGraph()
ddd.add_weighted_edges_from([('A','B',0.5),('A','C',0.5)])
print(pagerank_numpy(ddd))
ddd['A']['C']['weight']=1
print(pagerank_numpy(ddd))  
>>> {'A': 0.2597402597402597, 'B': 0.37012987012987014, 'C': 0.37012987012987014}
>>> {'A': 0.2597402597402599, 'B': 0.3333333333333334, 'C': 0.40692640692640686}

但是,与此同时,pagerank_numpy有一个名为weight的参数。根据文档:

权重(键,可选(– 用作权重的边缘数据键。如果"无",则权重设置为 1。

在上面的示例中,未设置weight,但似乎权重并未全部设置为 1。那么,这个参数weight真正做什么呢?

网络X版本:2.1

PageRank 算法根据网络上的随机游走为节点分配权重。 我们可以通过偏向步行来修改算法,使其比其他边缘更遵循某些边缘。 为此,我们对网络的边缘进行了加权。 Networkx对边缘权重非常灵活。 我们可以有名称为'weight''scale_factor''relative_frequency'的权重或任何我们想命名它们的字符串。 因此,PageRank算法需要知道要使用哪个名称。

这就是您在向算法传递weight参数时告诉算法的内容。 如果它没有得到这一点,它将所有边缘视为权重为 1。

相关内容

  • 没有找到相关文章

最新更新