開始使用免費開始

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
  • 計算向量 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(___(___ - ___))
編輯並執行程式碼