Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >pangrank算法--PageRank算法并行实现

pangrank算法--PageRank算法并行实现

作者头像
学到老
发布于 2018-03-16 06:16:33
发布于 2018-03-16 06:16:33
87200
代码可运行
举报
运行总次数:0
代码可运行

前言

Google通过PageRank算法模型,实现了对全互联网网页的打分。但对于海量数据的处理,在单机下是不可能实现,所以如何将PageRank并行计算,将是本文的重点。

本文将继续上一篇文章 PageRank算法R语言实现,把PageRank单机实现,改成并行实现,利用MapReduce计算框架,在集群中跑起来。

目录

  1. PageRank算法并行化原理
  2. MapReduce分步式编程

1. PageRank算法分步式原理

单机算法原理请参考文章:PageRank算法R语言实现

PageRank的分步式算法原理,简单来讲,就是通过矩阵计算实现并行化。

1). 把邻接矩阵的列,按数据行存储

邻接矩阵

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
          [,1]   [,2]   [,3]   [,4]
[1,] 0.0375000 0.0375 0.0375 0.0375
[2,] 0.3208333 0.0375 0.0375 0.8875
[3,] 0.3208333 0.4625 0.0375 0.0375
[4,] 0.3208333 0.4625 0.8875 0.0375

按行存储HDFS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1       0.037499994,0.32083333,0.32083333,0.32083333
2       0.037499994,0.037499994,0.4625,0.4625
3       0.037499994,0.037499994,0.037499994,0.88750005
4       0.037499994,0.88750005,0.037499994,0.037499994

2). 迭代:求矩阵特征值

map过程:

  • input: 邻接矩阵, pr值
  • output: key为pr的行号,value为邻接矩阵和pr值的乘法求和公式

reduce过程:

  • input: key为pr的行号,value为邻接矩阵和pr值的乘法求和公式
  • output: key为pr的行号, value为计算的结果,即pr值

第1次迭代

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0.0375000 0.0375 0.0375 0.0375     1     0.150000
0.3208333 0.0375 0.0375 0.8875  *  1  =  1.283333
0.3208333 0.4625 0.0375 0.0375     1     0.858333
0.3208333 0.4625 0.8875 0.0375     1     1.708333

第2次迭代

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0.0375000 0.0375 0.0375 0.0375     0.150000      0.150000
0.3208333 0.0375 0.0375 0.8875  *  1.283333  =   1.6445833
0.3208333 0.4625 0.0375 0.0375     0.858333      0.7379167
0.3208333 0.4625 0.8875 0.0375     1.708333      1.4675000

… 10次迭代

特征值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0.1500000
1.4955721
0.8255034
1.5289245

3). 标准化PR值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0.150000                                              0.0375000
1.4955721  / (0.15+1.4955721+0.8255034+1.5289245) =   0.3738930
0.8255034                                             0.2063759
1.5289245                                             0.3822311

2. MapReduce分步式编程

MapReduce流程分解

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【白话机器学习】算法理论+实战之PageRank算法
如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,常见的机器学习算法:
黄博的机器学习圈子
2020/04/26
1.8K1
【白话机器学习】算法理论+实战之PageRank算法
聊一聊 PageRank 的原理和实现
0x00 前言 Google出品必属精品!作为一名生长在Google大树下的草根程序员,Google的各种技术还是好好膜拜一下的。仔细也一想自己也算看了不少Google不少的论文:Goods、Spanner、F1、GFS、MapReduce、BigTable和Dremel。不过Google成名的PageRank算法没怎么重视,正好最近工作和业务时间都玩了一下,整理一两篇小短文,留个纪念。 我一直认为,程序员不应该对任何算法有所畏惧,因为大部分算法的核心思想和基本设计都不是那么晦涩难懂的。我们可以先搞定基本的
木东居士
2018/05/25
1K0
数据挖掘PageRank算法(网页排名原理)及Map-Reduce实现
方法/步骤 1 一、什么是pagerank PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Page(google 产品经理),因为他是这个算法的发明者之一,还是google CEO(^_^)。PageRank算法计算每一个网页的PageRank值,然后根据这个值的大小对网页的重要性进行排序。它的思想是模拟一个悠闲的上 网者,上网者首先随机选择一个网页打开,然后在这个网页上呆了几分钟后,跳转到该网页所指向的链接,这样无所事事、漫无目的地在网页上跳来跳 去,Pag
学到老
2018/03/16
1.6K0
数据挖掘PageRank算法(网页排名原理)及Map-Reduce实现
智能算法——PageRank
一、PageRank的基本概念 1、PageRank的概念 PageRank,即网页排名算法,又称为网页级别算法,是由佩奇和布林在1997年提出来的链接分析算法。PageRank是用来标识网页的等级、重要性的一种方法,是衡量一个网页的重要指标。PageRank算法在谷歌的搜索引擎中对网页质量的评价起到了重要的作用,在PageRank算法提出之前,已经有人提出使用网页的入链数量进行链接分析,但是PageRank算法除了考虑入链数量之外,还参考了网页质量因素,通过组合入链数量和网页质量因素两个指标,使得网页
felixzhao
2018/03/19
1K0
智能算法——PageRank
CS224W-11 成就了谷歌的PageRank
众所周知(并不是),谷歌最早是依靠搜索引擎起家的,而PageRank作为一种网页排序算法为谷歌的发展立下了汗马功劳。可以说,没有PageRank就没有今天的谷歌。
Houye
2020/05/08
8820
CS224W-11 成就了谷歌的PageRank
大数据 | Spark中实现基础的PageRank
吴军博士在《数学之美》中深入浅出地介绍了由Google的佩奇与布林提出的PageRank算法,这是一种民主表决式网页排名技术。书中提到PageRank的核心思想为: 在互联网上,如果一个网页被很多其他网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高。 同时,该算法还要对来自不同网页的链接区别对待,排名越高的网页,则其权重会更高,即所谓网站贡献的链接权更大。 例如网页Y被X1,X2,X3,X4四个网页所链接,且这四个网页的权重分别为0.001,0.01,0.02,0.04,则网页Y的Rank值=0.0
张逸
2018/03/07
1.4K0
PageRank算法(2):PageRank原理剖析
一、PageRank算法的简单举例 Google PageRank算法的思想精华在于:将一个网页级别/重要性的排序问题转化成了一个公共参与、以群体民主投票的方式求解的问题,网页之间的链接即被认为是投票行为。同时,各个站点投票的权重不同,重要的网站投票具有较大的分量,而该网站是否重要的标准还需要依照其PageRank值。这看似是一个矛盾的过程:即我们需要用PageRank值来计算PageRank值~ 听起来有点不可思议,既像是递归,又像是迭代,似乎陷入了一个漩涡,Google的创始人佩奇和布林证明了这个过程最
机器学习AI算法工程
2018/03/13
4.3K0
PageRank算法(2):PageRank原理剖析
分布计算 | 大数据机器学习系统研究进展
要实现高效的大数据机器学习,需要构建一个能同时支持机器学习算法设计和大规模数据处理的一体化大数据机器学习系统。研究设计高效、可扩展且易于使用的大数据机器学习系统面临诸多技术挑战。近年来,大数据浪潮的兴起,推动了大数据机器学习的迅猛发展,使大数据机器学习系统成为大数据领域的一个热点研究问题。介绍了国内外大数据机器学习系统的基本概念、基本研究问题、技术特征、系统分类以及典型系统;在此基础上,进一步介绍了本实验室研究设计的一个跨平台统一大数据机器学习系统——Octopus(大章鱼)。 关键词:大数据;机器学
小莹莹
2018/04/20
1.3K0
分布计算 | 大数据机器学习系统研究进展
PageRank算法(python实现)
Python 实现的PageRank算法,纯粹使用python原生模块,没有使用numpy、scipy。这个程序实现还比较原始,可优化的地方较多。
py3study
2020/01/08
1.9K0
文心一言 VS 讯飞星火 VS chatgpt (390)-- 算法导论25.1 4题
要证明由 EXTEND-SHORTEST-PATHS 所定义的矩阵乘法是相关的,我们首先需要理解 EXTEND-SHORTEST-PATHS 算法的基本工作原理。EXTEND-SHORTEST-PATHS 通常用于计算两个加权有向图的乘积,其中图的权重表示从一个顶点到另一个顶点的最短路径长度。
福大大架构师每日一题
2024/11/13
840
文心一言 VS 讯飞星火 VS chatgpt (390)-- 算法导论25.1 4题
CS224w图机器学习(九):Link Analysis- PageRank
开始本章节内容之前,先对前十课的内容进行总结。前三节课主要讲在图的概念与性质,我们简单总结下这三讲内容所提到的与图相关的概念。
慎笃
2021/09/15
5240
文心一言 VS 讯飞星火 VS chatgpt (391)-- 算法导论25.1 5题
五、说明如何将单源最短路径问题表示为矩阵和向量的乘积,并解释该乘积的计算过程如何对应 Bellman-Ford 算法?(请参阅24.1节。)。如果要写代码,请用go语言。
福大大架构师每日一题
2024/11/15
930
文心一言 VS 讯飞星火 VS chatgpt (391)-- 算法导论25.1 5题
文心一言 VS 讯飞星火 VS chatgpt (396)-- 算法导论25.2 1题
好的,让我们一步步分析在带权重的有向图上运行 Floyd-Warshall 算法,并生成每次外层循环迭代后的矩阵 D^{(k)}。Floyd-Warshall 算法用于计算所有顶点对之间的最短路径。
福大大架构师每日一题
2024/11/22
600
文心一言 VS 讯飞星火 VS chatgpt (396)-- 算法导论25.2 1题
Randomized SVD 算法介绍与实现
本文介绍了随机化主成分分析(Randomized PCA)在去噪、降维、数据压缩、流形学习等领域的应用,并分析了在分布式计算环境下,Randomized SVD 算法在处理大型数据集的去噪、降维任务中的优势。
卢欣
2017/07/28
9.6K2
Randomized SVD 算法介绍与实现
谱聚类算法(Spectral Clustering)
谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。其中的最优是指最优目标函数不同,可以是割边最小分割——如图1的Smallest cut(如后文的Min cut), 也可以是分割规模差不多且割边最小的分割——如图1的Best cut(如后文的Normalized cut)。
AIHGF
2019/02/18
1.8K0
【数据挖掘】PageRank 为什么跻身数据挖掘十大经典算法?
数据人有话说 Google 的 PageRank 曾是主宰 Google 排名算法的一个主要因素,一度我们看一个网站的排名,往往会先去分析它的 PageRank 是多少。不过现在人们逐渐意识到 PageRank 已难再唱主角,麻烦就出在它在概念上太容易理解了——一旦容易被理解,就容易被控制。搜索引擎的价值和魅力,就在于我们无法了解它幕后的排名技术。相反,如果我们了解了一个搜索引擎是如何对搜索结果进行排名的,那么我们完全可以从中做手脚,这样的话这个搜索引擎就没有什么意义了。 然而即使辉煌不再,不可否认的是,P
陆勤_数据人网
2018/02/26
1.2K0
【数据挖掘】PageRank 为什么跻身数据挖掘十大经典算法?
算法channel使用指南(V2.0)
01 引言 欢迎关注 算法channel ! 交流思想,分享知识,找到迈入机器学习大门的系统学习方法,并在这条道路上不断攀登,这是小编创办本公众号的初衷。 本公众号会系统地推送基础算法及机器学习/深度学习相关的全栈内容,包括但不限于:经典算法,LeetCode题目分析,机器学习数据预处理,算法原理,例子解析,部分重要算法的不调包源码实现(现已整理到Github上),并且带有实战分析,包括使用开源库和框架:Python, Numpy,Pandas,Matplotlib,Sklearn,Tensorflow等
double
2018/04/02
1.1K0
3小时入门Spark之Graphx
由于事物之间普遍联系的哲学原理,网络结构无处不在。例如,微信用户之间的好友关系形成社群网络,科学论文间的相互引用关系形成文献网络,城市之间的道路连接形成交通网络 …… 可以说,万事万物都处在一个复杂网络当中。马克思·韦伯也说:人是悬挂在自己编织的意义之网上的动物。网太重要了,所以我们每次到一个新的地方,我们都会问:老板,有网吗?wifi密码是什么?
lyhue1991
2020/07/20
5.2K0
3小时入门Spark之Graphx
从马尔科夫链到吉布斯采样与PageRank
马尔科夫链表示state的链式关系,下一个state只跟上一个state有关。 吉布斯采样通过采样条件概率分布得到的样本点,近似估计概率分布P(z)P(z)。PageRank通过节点间的连接,估计
用户1147754
2018/03/08
1.7K0
从马尔科夫链到吉布斯采样与PageRank
每周学点大数据 | No.45 基于路径的图算法
No.45期 基于路径的图算法 Mr. 王:接下来我们看一类具体的问题,这类问题叫作基于路径的图算法。这类算法的目标是计算节点间关于路径的信息。在这类问题中,图中的边一般是加权的,这些权也可以叫作边的标记,包括代价、距离、或者相似性等。 小可:边的标记就像社交网络图里面的联系亲密度一样吧。 Mr. 王:是的。这类问题的典型例子就是单源最短路径、最小生成树、Steiner 树、拓扑排序等。 小可:Steiner 树我没有听说过,它是做什么用的呢? Mr. 王:Steiner 树是连接给定集合的最小代价树,后面
灯塔大数据
2018/04/04
1K0
每周学点大数据 | No.45  基于路径的图算法
相关推荐
【白话机器学习】算法理论+实战之PageRank算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验