PageRank 的變化
PageRank 公式 \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) 可以用迭代法求解 $\vec{PR}\(。在每一次迭代中,會用當前的 \)\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(___(___ - ___))