大数据(十四)Hadoop-MR编程 -- 【使用hadoop计算网页之间的PageRank值----概念】
2017-08-14 22:14
302 查看
一、什么是PageRankPageRPageRankankPageRank
–PageRank是Google专有的算法,用于衡量特定网页相对于搜索引擎索引中的其他网页而言的重要程度。
–是Google创始人拉里·佩奇和谢尔盖·布林于1997年创造的
–PageRank实现了将链接价值概念作为排名因素。
二、原理
–入链
====投票
•PageRank让链接来“投票“,到一个页面的超链接相当于对该页投一票。
–入链数量
•如果一个页面节点接收到的其他网页指向的入链数量越多,那么这个页面越重要。
–入链质量
•指向页面A的入链质量不同,质量高的页面会通过链接向其他页面传递更多的权重。所以越是质量高的页面指向页面A,则页面A越重要。
三、举例说明
如下图所示,A、B、C、D分别代表四个网页。A指向B代表A网页中有一个指向B网页的超链接。
[align=left]
[/align]
四、算法
–初始值
•每个页面设置相同的PR值
•Google的pagerank算法给每个页面的PR初始值为1。
–迭代递归计算(收敛)
•Google不断的重复计算每个页面的PageRank。那么经过不断的重复计算,这些页面的PR值会趋向于稳定,也就是收敛的状态。
•在具体企业应用中怎么样确定收敛标准?
–1、每个页面的PR值和上一次计算的PR相等
–2、设定一个差值指标(0.0001)。当所有页面和上一次计算的PR差值平均小于该标准时,则收敛。
–3、设定一个百分比(99%),当99%的页面和上一次计算的PR相等
–修正PageRank计算公式
•由于存在一些出链为0,也就是那些不链接任何其他网页的网,也称为孤立网页,使得很多网页能被访问到。因此需要对PageRank公式进行修正,即在简单公式的基础上增加了阻尼系数(damping
factor)q,q一般取值q=0.85。
–完整PageRank计算公式
–PageRank是Google专有的算法,用于衡量特定网页相对于搜索引擎索引中的其他网页而言的重要程度。
–是Google创始人拉里·佩奇和谢尔盖·布林于1997年创造的
–PageRank实现了将链接价值概念作为排名因素。
二、原理
–入链
====投票
•PageRank让链接来“投票“,到一个页面的超链接相当于对该页投一票。
–入链数量
•如果一个页面节点接收到的其他网页指向的入链数量越多,那么这个页面越重要。
–入链质量
•指向页面A的入链质量不同,质量高的页面会通过链接向其他页面传递更多的权重。所以越是质量高的页面指向页面A,则页面A越重要。
三、举例说明
如下图所示,A、B、C、D分别代表四个网页。A指向B代表A网页中有一个指向B网页的超链接。
[align=left]
[/align]
四、算法
–初始值
•每个页面设置相同的PR值
•Google的pagerank算法给每个页面的PR初始值为1。
–迭代递归计算(收敛)
•Google不断的重复计算每个页面的PageRank。那么经过不断的重复计算,这些页面的PR值会趋向于稳定,也就是收敛的状态。
•在具体企业应用中怎么样确定收敛标准?
–1、每个页面的PR值和上一次计算的PR相等
–2、设定一个差值指标(0.0001)。当所有页面和上一次计算的PR差值平均小于该标准时,则收敛。
–3、设定一个百分比(99%),当99%的页面和上一次计算的PR相等
–修正PageRank计算公式
•由于存在一些出链为0,也就是那些不链接任何其他网页的网,也称为孤立网页,使得很多网页能被访问到。因此需要对PageRank公式进行修正,即在简单公式的基础上增加了阻尼系数(damping
factor)q,q一般取值q=0.85。
–完整PageRank计算公式
相关文章推荐
- 大数据 (十五)Hadoop-MR编程 -- 【使用hadoop计算网页之间的PageRank值----编程】
- 面向UI编程:ui.js 1.1 使用观察者模式完成组件之间数据流转,彻底分离组件之间的耦合,完成组件的高内聚
- 提高C#编程水平的50个要点 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as 和 强制类型转换之
- [python]使用python实现Hadoop MapReduce程序:计算一组数据的均值和方差
- Hadoop学习笔记—4.初识MapReduce 一、神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算。对于大数据
- 安编程中使用handleMessage实现线程之间数据交互
- 使用Hadoop分析数据——简单案例java语言编程之MaxTemperature
- 使用sqoop 在关系型数据库和Hadoop之间实现数据的抽取
- <关于数据仓库>基于docker的Mysql与Hadoop/Hive之间的数据转移 (使用Apache Sqoop™)
- 7、 数据仓库Hive(使用sql进行计算的hadoop框架)
- 使用Ajax实现DropDownList和ListBox的联动以及两个ListBox之间数据的移动
- 使用HttpWebRequest访问网页及获取数据
- 使用事件和委托再两个窗体之间传递数据
- 网页编程小经验-数据绑定dictionary
- 关于socket编程数据发送和接受的感受(wm和pc之间)
- Crystal Reports使用共享变量实现主报表及子报表之间的数据共享
- 使用javascript网页之间的表单对象action的调用
- 在网页中使用Socket编程
- Scott Mitchell 的ASP.NET 2.0数据教程之十四:使用FormView 的模板
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十四:使用FormView 的模板