PageRank简单实现中的一个错误
来源:互联网 发布:windows打印原理 编辑:程序博客网 时间:2024/05/21 13:18
在我的一篇博客PageRank中,在5.1 算法实现中简单实现部分原本是有一个错误的。这个错误也体现出我当时对PageRank算法有理解上的偏差。
这是个什么样的错误呢?是这样的:
简单实现中计算每个网页的PR值时使用的是最原始的方法,即下面的这个公式:
这个公式要求所有网页的PR值之和为1。而我原本的代码中给每个网页赋予的初始PR值的代码为:
page_rank = dict.fromkeys(nodes, 1.0) # 给每个节点赋予初始的PR值
也就是说,我给出的初始PR值之和为5(例子中共有5个网页)。
犯这个错误的原因是我理解错了“与
然而,我理解错了也还有另一个原因,那就是我原来的程序中不管给出的初始PR值是多少,最终的PR值都是一样的。现分析如下:
按照我原本的程序逻辑,我使用的公式应该是这样的,其中
而我却使用了最原始的公式,造成了:
现假设初始PR值总和为
即不管初始PR值为多少,最终其和都将趋于1(若初始值之和小于1,用相似的方法可以证明)。也就是说,最终结果是一样的(因为最终趋于1之后就相当于以“PR值总和为1”的情况又开始了计算)。这一点在代码中也有体现:当PR值设置得很大的时候,需要迭代的次数也相应增大。
总结:应该使用最上面的公式,同时初始PR值总和应该设置为1。
0 0
- PageRank简单实现中的一个错误
- PageRank的一个简单实现
- PageRank简单实现
- hadoop实现的一个简单的Pagerank例子
- 谷歌pageRank算法简单实现
- spark实现简单的pagerank
- PageRank算法的简单实现.
- PageRank的php简单实现
- PageRank的简单实现(scala版)
- 实现pageRank
- PageRank算法在spark上的简单实现
- 【单机版】一个小爬虫+PageRank代码实现
- 简单PageRank的理解
- 生活中的PageRank
- java 实现pagerank
- pagerank算法java实现
- PageRank的MapReduce实现
- PageRank算法并行实现
- 《构建之法》读书笔记——第9章 项目经理
- Spring 的使用与配置
- 数据绑定
- 一个很详细的web.xml讲解
- C++ bitset类的使用与简介
- PageRank简单实现中的一个错误
- LVM_resize+根目录下各个目录的作用
- LeetCode(130) Surrounded Regions
- HashMap学习小记
- 扑克牌顺子
- 利用onNewIntent方法传递参数
- 手写还算好用的 queue和Dequeue 为STL依赖党做些微小的工作 队列和双端队列
- 快速求素数筛法
- 【HDU 5480 Conturbatio】