PageRank 的 Python 实现

标签 python linear-algebra pagerank

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

我特别找到了一个interesting website概述了 PageRank 在 Python 中的实现。但是,我似乎不太理解此页面上显示的所有功能的用途。任何人都可以澄清这些功能到底在做什么,尤其是 pageRankeGenerator?

最佳答案

我会尝试从我的个人笔记中对 PageRank 算法给出一个简单的解释(定义)。

假设页面 T1、T2、... Tn 指向页面 A,则

PR(A) = (1-d) + d * (PR(T1) / C(T1) + ... + PR(Tn) / C(Tn))

在哪里

  • 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

第一轮
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

回合的总和 = 3

第二轮
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

回合的总和 = 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

回合的总和 = 3

...

关于PageRank 的 Python 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3950627/

相关文章:

c++ - Eigen 3/C++ : MatrixXd multiply one row with another

wordpress - 将 domain.com/keyword 作为主页 URL

python - InconcientTableError 行与 astropy Table.read() 的列错误不同

python - 正则表达式匹配特殊情况

python - 使用Python从文件夹中按顺序读取多个excel文件

r - diag(X V X^T) 的紧凑/高效替代品?

performance - 是否有内置的 matlab 可以计算二次形式 (x'*A*x)?

php - 在 google 中查找 Pagerank

hadoop - 在Hadoop中使用Wikipedia数据集进行pagerank

python3 + Pandas 样式 + 更改交替行颜色