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。 - 计算向量
iter1与iter2的绝对差之和。 - 我们已按与
iter1、iter2相同的方法计算出iter9和iter10。请判断:这两次迭代之间的差异是否小于第 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(___(___ - ___))