我正在从R中的igraph中获取PageRank值,以匹配我从Gephi中获得的值。我以这个例子为例:https://www.briggsby.com/personalized-pagerank我的igraph值与这个例子的加权值相匹配。但是Gephi为加权PageRank生成了一个不同的值,我不确定为什么。当我把它作为一个未加权的PageRank运行时,我在igraph和Gephi之间得到了相同的结果。
我正在导入的网络很容易得到正确的数学-
源 | 目标 | 权重|
---|---|---|
A | B | <1.0>|
B | C | <1.0>|
C | B | <1.0>|
C | A | 0.5 |
A | C | <1.0>|
C | D | 0.1 |
D | A | 0.5 |
我无法用igraph重现您的结果。请提供一个最小限度的可复制示例,并提供可复制代码。你可以在这里找到指导。
这是您的可复制CSV:数据文件
Source,Target,Weight
A,B,1.
B,C,1.
C,B,1.
C,A,0.5
A,C,1.
C,D,0.1
D,B,0.5
我们在使用read.csv
:后得到这个
df <- structure(list(Source = c("A", "B", "C", "C", "A", "C", "D"),
Target = c("B", "C", "B", "A", "C", "D", "B"), Weight = c(1,
1, 1, 0.5, 1, 0.1, 0.5)), class = "data.frame", row.names = c(NA,
-7L))
g <- graph_from_data_frame(df)
page_rank(g, weights = E(g)$Weight)
$vector
A B C D
0.14857410 0.37354978 0.41816130 0.05971482
使用ARPACK方法,这是一种完全不同的算法,我们得到了相同的结果:
> page_rank(g, weights = E(g)$Weight, algo = 'arpack')
$vector
A B C D
0.14857410 0.37354978 0.41816130 0.05971482
这些数字与你引用的不同,但如果没有一个可重复的例子,我无法说出原因。
我应该注意的是,我研究了igraph的PageRank代码,我相信它不太可能给出错误的结果。