PageRank的Python实现

Jul*_*lio 1 python pagerank linear-algebra

我试图理解Google PageRank背后的概念,并试图在Python中实现类似(虽然简陋)的版本.我花了最后几个小时熟悉算法,但它仍然不是那么清楚.

我找到了一个特别有趣的网站,概述了Python中PageRank的实现.但是,我似乎无法理解本页所示所有功能的用途.任何人都可以澄清这些函数到底在做什么,尤其是pageRankeGenerator?

Nic*_*kis 8

我将尝试从我的个人笔记中给出PageRank算法的简单解释(定义).

让我们说页面T1,T2,... Tn指向页面A,然后

PR(A) = (1-d) + d * (PR(T1) / C(T1) + ... + PR(Tn) / C(Tn))
Run Code Online (Sandbox Code Playgroud)

哪里

  • PR(Ti)是Ti的PageRank
  • C(Ti)是来自页面Ti的输出链接的数量
  • d是0 <d <1范围内的倾销因子,通常设为0.85

每个PR(x)都可以有起始值1,我们通过重复算法调整页面排名〜每页10-20次.

页面A,B,C的示例:

   A <--> B
   ^     /
    \   v
      C
Run Code Online (Sandbox Code Playgroud)

圆1
A = 0.15 + 0.85(1/2 + 1/1)= 1.425
B = 0.15 + 0.85(1/1)= 1
C = 0.15 + 0.85(1/2)= 0.575

round的总和= 3

第2轮
A = 0.15 + 0.85(1/2 + 0.575)= 1.06375
B = 0.15 + 0.85(1.425)= 1.36125
C = 0.15 + 0.85(1/2)= 0.575

round的总和= 3

第3轮
A = 0.15 + 0.85(1.36125/2 + 0.575)= 1.217
B = 0.15 + 0.85(1.06375)= 1.054
C = 0.728

round的总和= 3

...