关于页面排名的疑问

时间:2012-11-26 20:39:17

标签: algorithm hadoop mapreduce pagerank

我试图使用Mapreduce找到维基百科的内部网页排名。 我在一小部分wikipages上实现了Pagerank算法。 有 6349 页面。我用这个公式计算了pagerank(d = 0.85)。

enter image description here

我想验证所有Pagerank的总和是否等于总页数(6349)。

到目前为止我发现了:

1.所有6349页的总页面排名 1001.26044

2.根据WikiPedia,如果我使用上述公式,则 each PageRank is multiplied by N and the sum becomes N 。我将每页的排名乘以N(6349)并计算总和,我得到 6356789.5

页面排名的总和是否不等于总页数? 我应该使用第二个公式来验证吗?

enter image description here

注意:我运行了mapreduce代码10次迭代,以获得良好的近似值。

2 个答案:

答案 0 :(得分:5)

正如我想的那样,你的迭代次数太少了。为什么10?为什么100?还是100000?您应该计算,最后两次更改的中等或最大值是多少。从而评估可能的错误。

PR是概率。所有这些的总和应该是1!句子“所有页面总和的总和等于总页数”是错误的。

至于另一个公式,它属于另一个模型和另一个PR。当然,你也可以使用它。或两者。但是你无法检查它。

答案 1 :(得分:-1)

它取决于您选择的基数(默认值为1)。每次迭代后,你必须计算

delta = (base - sum_of_ranks) / N

然后按delta减少每个等级。只有这样,你才能保持活力,直到最后一次迭代。