【发布时间】:2013-11-26 01:26:12
【问题描述】:
我正在尝试使用以下步骤在 R 中实现页面排名算法:
-
加载一个示例图,例如:
0 1 0 2 0 3 1 2 1 5 2 0 2 4 3 1 3 0 3 4 4 1 4 5 5 2 5 3 从此图创建邻接矩阵
- 创建马尔可夫链(转移矩阵)
- 找到平稳分布并对其进行归一化
以下是实现所有这些步骤的代码:
g = read.graph(x)
a = get.adjacency(g)
markov = a / rowSums(a)
e = eigen(t(markov))
v <- e$vec[,1]
normalized <- v / sum(v)
当我将归一化对象的向量与 page.rank(g) 为这个特定图形生成的向量进行比较时,它们几乎相同,但差异很小。但是,当我在此图上尝试时:
0 1
0 2
0 3
1 2
1 5
2 0
2 4
3 1
3 0
3 4
4 1
4 5
5 2
5 3
6 1
6 2
6 5
6 0
7 3
7 4
7 6
7 7
7 1
8 2
8 5
9 8
9 7
9 1
9 5
10 2
10 3
10 9
差别很大!
任何人对此都有解释,或者 R 中该算法的替代实现。
【问题讨论】: