开始使用免费开始使用

PageRank 的变化

PageRank 公式 \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) 可以通过迭代来求解。在每次迭代中,使用当前的 \(\vec{PR}\) 值计算一个新的、更接近真实值的结果。也就是说,任意相邻两次迭代得到的 \(\vec{PR}\) 之差会越来越小,直到 \(\vec{PR}\) 收敛到真实值,差异变为(几乎)0。 在本练习中,您将观察 PageRank 算法以及它的收敛过程。

本练习是课程的一部分

使用 R 进行网络数据的预测分析

查看课程

练习说明

  • 使用 page.rank() 配合 network 并指定 niter=1,运行 PageRank 算法进行一次迭代。提取向量属性并将结果保存为 iter1
  • 将上一步重复一遍,但设为 niter=2。将结果保存为 iter2
  • 计算向量 iter1iter2 的绝对差之和。
  • 我们已按与 iter1iter2 相同的方法计算出 iter9iter10。请判断:这两次迭代之间的差异是否小于第 1 次与第 2 次迭代之间的差异。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Compute one iteration of PageRank 
iter1 <- page.rank(___, algo = 'power', options = list(niter = ___))$vector

# Compute two iterations of PageRank 
iter2 <- ___(___, algo = 'power', options = list(niter = ___))$vector

# Inspect the change between one and two iterations
sum(abs(___ - ___))

# Inspect the change between nine and ten iterations
sum(___(___ - ___))
编辑并运行代码