Pagerank 的mapreduce

原创 2016年08月29日 12:50:38
什么是pagerank,不说了,机器学习10大算法之一,网上搜一堆。谷歌发明的网页搜索方法。简单说就是原来N个网页,有一个初始概率向量,然后有一个转移矩阵,跟原始概率向量相乘(一般还要考虑陷阱问题,所以一般每一步是个乘加)(其实就是一个马尔可夫过程),得到一个新的概率向量。然后反复乘加。由于网页实在太多,所以可能计算量相当大。可以说谷歌发明分布式mapreduce(hadoop)最初就是用来解决pagerank大计算量的。所以研究pagerank的mapreduce可以说是机器学习方法的分布式化的一个非常好的例子。

由于矩阵相乘的计算量实在是太大,而网页之间的跳转一般只在少数之间相关联,所以转移矩阵一般来说是稀疏矩阵,零元素较多,因此可以采用只存储非零元素的方法来进行压缩存储

一般存储格式如下:




然后一个Driver类发起的对data的初始划分,输入目录是:output/data,输出目录是:output/clusters-0。 这里我们假设样本被划分为了3份小样本文件,分散在cluster中,如上图右侧。

1Map阶段

Map操作的每一行,对所有出链发射当前网页概率值的1/kk是当前网页的出链数,比如

第1个map处理划分出的第一个文件,在第一行输出1/3*1/4>,,1/3*1/4>,,1/3*1/4>;

第2个map处理划分出的第二个文件,第1行输出,  第2行输出

第3个map处理划分出的第三个文件,第,1行输出,


然后在reduce阶段。统计特定网页的权值累加。pj=a*(p1+p2+Pm)+(1-a)*1/n,其中m是指向网页j的网页j数,n所有网页数。


然后Driver代码中还要完成多次迭代,直至收敛。

Pagerank <wbr>的mapreduce

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MapReduce框架中PageRank算法的代码实现

主要包括5个类 PageRankNode:图中的节点类-代表一个页面 PageRankJob:实现分散各个节点的PR值的类 DistributionPRMass:实现dangling...

mapreduce下pagerank算法 自动收敛的算法

input.txt文件输入格式如下: 网页ID 初始PR值 外连接网页ID 1          1         ...

PageRank算法实现------MapReduce

Point 1:pagerank.txt————–计算样本A B D B C C A B D B CPoint 2:Node.classprivate double pag...

PageRank及其MapReduce实现

Pagerank是一个衡量网页重要性的算法,这个算法把互联网上的网页集合看成一个有向图,每个网页是一个节点,如果网页A有指向网页B的链接,则这两个点存在一条有向边A->B,那么如果A这个网页上有k个网...

【大创_社区划分】——PageRank算法MapReduce实现

举例来讲: 假设每个网页都有一个自己的默认PR值,相当于人为添加给它是一种属性,用来标识网页的等级或者重要性,从而依据此标识达到排名目的。假设有ID号是1的一个网页,PR值是10,假如它产生了到ID=...

Hadoop2.8.0<Mapreduce实现Google-PageRank算法>

1.PageRank简单介绍PageRank是Google专有的算法,用于衡量特定网页相对于搜索引擎索引中的其他 网页而言的重要程度。它由Larry Page 和 Sergey Brin在20世纪9...

基于MapReduce的PageRank算法实现

PageRank对网页排名的算法,曾是Google发家致富的法宝。以前虽然有实验过,但理解还是不透彻,这几天又看了一下,这里总结一下PageRank算法的基本原理。1.什么是pagerank  Pag...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)