2012-11-26 29 views
4

我正在嘗試使用Mapreduce查找維基百科的內部頁面排名。 我在一小部分wikipages上實現了我的Pagerank算法。 還有頁面。我用這個公式來計算網頁排名(d = 0.85)。關於頁面排名的疑問

enter image description here

我想驗證是否所有的PageRank的總和等於(6349)的總頁數。

我迄今發現:所有的6349頁的

1.總網頁排名1001.26044

2.According到WikiPedia如果我使用上面的公式,然後each PageRank is multiplied by N and the sum becomes N。我乘以N(6349)每頁的排名和計算總和,我得到6356789.5

是否有一個原因,爲什麼頁面總和不等於總頁數? 我應該使用第二個公式來驗證嗎?

enter image description here

注:我跑我的MapReduce代碼爲10次迭代獲得良好的逼近。

回答

5

正如我所想,你有太少的迭代。爲什麼10?爲什麼100?還是100000?你應該數一下,最後兩次更改的媒介或最大值是多少。從而評估可能的錯誤。

而PR是概率。他們的總和應該是1! 「所有頁面排名的總和等於總頁數」這句話是錯誤的。

至於另一個公式,它屬於另一個模型和另一個公關。當然,你也可以使用它。或兩者。但是你不能使用它。

+0

您想讓我計算最近2次迭代的總頁面排名之間的差異嗎?我不太明白你的意思是中等或最高。這將如何幫助評估可能的錯誤? –

+0

你不知道真正的公關,記得嗎?所以,通過比較後續迭代的結果,你只能猜測你有多接近它。但這些結果不是數字,它們是6k成員的媒介。所以,如果你想比較它們,你必須選擇一些度量 - 中等差異或最大差異。 – Gangnus

+0

如果你有最大的差異:1/10,1/20,1/40,1/80 ...比你可以肯定地猜測最後一次迭代的實際誤差爲1/80。 – Gangnus

-1

它取決於您選擇的基礎(默認值爲1)。每次迭代後,您必須計算

delta = (base - sum_of_ranks)/N 

然後按delta降低每個等級。只有這樣,你才能保持你的排名,直到最後一次迭代結束。