在千峰老师的《大规模分布式系统架构与设计实战》一书中的有一个从赌钱游戏看PageRank算法,以下简称PR算法
首先我们来说下PR算法,PR(A)=(PR(B)/L(B)+PR(C)/L(C)+...+PR(X)/L(X))*q+1-q
其中q为逃脱因子,暂且不去理解它(取q=1),此时有公式PR(A)=PR(B)/L(B)+PR(C)/L(C)+...+PR(X)/L(X),说白了网页A的PR值等于他的所有入站链接的PR值得和。
但是网页的PR值我们没法孤立出来进行求算,你想啊,比如现在我想算网页A的PR值,那么我得知道链接到A的那些网页的PR值以及他们的L值,而要想知道这些网页的PR和L值,又得算...这就使得我们的求算没有尽头。所以我们得考虑换种方案。
我们可以对于所有的网页,计算它们的出站链接的PR值,就是说计算所有网络中存在的链接的PR值,然后我们以这些链接链接到的网页作为标准分类,最终求得每个网页的PR值。
举例,比如现在我们有3个网页A,B,C,他们互相都有链接,一共有六个链接。按照上面的方案,对于网页A,有出站链接A->B(PR值为PR(A)/2),有出站链接A->C(PR值为PR(A)/2);
对于网页B,有出站链接B->A(PR值为PR(B)/2),有出站链接B->C(PR值为PR(B)/2);
对于网页C,有出站链接C->A(PR值为PR(C)/2),有出站链接C->B(PR值为PR(C)/2);
网络中一共存在6个链接,他们的PR值也已经算出,此时进行统计可以看到,网页A的入站链接有2个,B->A(PR值为PR(B)/2),C->A(PR值为PR(C)/2),则PR(A)=PR(B)/2+PR(C)/2;
以此类推,PR(B)=PR(A)/2+PR(C)/2;PR(C)=PR(A)/2+PR(B)/2;
自此,我们就找到了每个网页PR值的算法,然后我们仅仅需要为PR(A),PR(B),PR(C)赋值,然后进行多轮迭代,就可求出最终的每个网页的PR值。
在PR值得求算过程中,PR值一直在网页之间流动,因此多轮计算后回收敛。
类似这种“并行计算+数据算法”的经典搭配,并且这种“海量数据并行计算,迭代多轮后收敛”的分析过程十分常见。
附件中是书中的源代码
分享到:
相关推荐
2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Spark...
基于Spark+PageRank算法构建仿微博用户好友的分布式推荐系统.zip 1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程...
计算大规模网络结点的PageRank值,python实现
#资源达人分享计划#
在这套算法的基础上,基于天网文件系统与Map-Reduce计算平台,实现了分布式的网页块级别PageRank算法,命名为QuarkRank算法。实际检验表明,该套算法具有很好的适应性与可扩展性,并达到了很高的精度和召回率。
分布式随机PageRank算法的收敛性
-------对于社交系统与电商网站,推荐系统占有很重要的位置,当数据量越来越大的时候,用户无法确定该选择什么商品,因此在电商系统中需要按照兴趣或者相似度给用户推荐相应的商品。相应的,在一个大型社交网络平台...
南开大学大数据课程大作业一 :PageRank算法代码
pagerank与hits算法的介绍,对比
是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得;有效减少在线查询时的计算量,极大降低了查询响应时间。 缺点: 1)人们的查询具有主题特征,PageRank忽略了主题相关性,导致结果的相关性和...
实现PageRank算法最为简单的代码,此代码使用java编写,适合与学习搜索引擎了解pageRank算法的初学者。
南开大学大数据课程大作业一:PageRank算法(分块)
pagerank - 加权PageRank算法Go实现
基于PageRank模型扩展到网络大小的规模时会面临诸如如何存储矩阵、PageRank的解的精度、收敛准则、悬挂节点如何处理等问题,本文通过对链接分析算法的数学内容分析,研究了PageRank部分的数学元素的存储问题、悬挂...
计算概论(2011秋 大一上):神奇翻转 程序设计实习(2012春 大一下):OpenJudge魔兽世界、Botzone四色地图 计算机系统导论(2012秋 大二上):Proxy Lab ...分布式系统概念与设计(2016春 研一下):分布式PageRank
pagerank, 在 C 中能够处理非常大的图,实现了 一个开源PageRank实现这个项目提供了一个开源的PageRank实现。 这个实现是一个简单的算法描述,用美国社会专栏的美国数学特征描述,谷歌如何在网页中找到你的针,由 ...