首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加权图问题的PageRank

加权图问题的PageRank
EN

Stack Overflow用户
提问于 2018-04-02 20:32:34
回答 1查看 369关注 0票数 1

我有一个关于PageRank如何显示“权重”的影响的问题。我想使用贸易值作为权重来计算贸易国家的PageRank,我的代码如下所示。但我发现,结果与未加权的结果是相同的。我也不知道原因。

有没有人能帮我理解一下如何在PageRank计算中显示“权重”?

代码语言:javascript
复制
import networkx as nx
import os
import pandas as pd

data=pd.read_excel('f-e-2016-intermediate-use.xlsx')
G=nx.DiGraph()
teams=data.groupby(['reportercode','partnercode'])
team_names=[name for name,group in teams]
G.add_edges_from(team_names)

a_node=data.groupby(['reportercode'])
source_nodes=[name for name,group in a_node]
b_node=data.groupby(['partnercode'])
target_nodes=[name for name,group in b_node]
nodes=set(source_nodes+target_nodes)
G.add_nodes_from(nodes)

page_rank=nx.pagerank(G,weight='tradevalueus')
EN

回答 1

Stack Overflow用户

发布于 2018-06-25 05:10:20

我是在自己寻找答案后才发现这个问题的。对我来说起作用的只是在Pagerank参数旁边添加weight=True命令,例如,为网络中的所有节点建立页面排名分数:

代码语言:javascript
复制
pagerank_dict = dict(nx.pagerank(G, weight=True)

唯一的问题可能是您正在使用与我不同的方法来读取您的边缘列表。我建议使用nx.read_weighted_edgelist特性来加载图形的节点和边数据。excel文件应包含三列,其中源节点、目标节点和边权重值相邻(不包括标题,保存为.csv格式)。然后你可以使用下面的命令来加载你的数据,这样它就可以保证与pagerank一起正常工作:

代码语言:javascript
复制
G = nx.read_weighted_edgelist('f-e-2016-intermediate-use.csv', delimiter=',', create_using = nx.DiGraph(), nodetype=str)
pagerank_dict = dict(nx.pagerank(G, weight=True)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49611368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档