PageRank理论与实践及用户评分应用PeopleRank算法
PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种由根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一. Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一.PageRank适用于任何图或网络在任何域.因此,PageRank是现在经常使用在文献计量学,社会和信息网络分析,用于链接预测和推荐,甚至用于道路网络的系统分析,以及生物学,化学,神经科学,物理.
原理:

由于存在一些出链为0,也就是那些不链接任何其他网页的网, 也称为孤立网页,使得很多网页能被访问到.因此需要对 PageRank公式进行修正,即在简单公式的基础上增加了阻尼系数(damping factor)d, d一般取值d=0.85.其意义是,在任意时刻,用户到达某页面后并继续向后浏览的概率. 1- d= 0.15就是用户停止点击,随机跳到新URL的概率的算法被用到了所有页面上,估算页面可能被上网者放入书签的概率.
最后,即所有这些被换算为一个百分比再乘上一个系数d.由于下面的算法,没有页面的


优缺点:
优点:
1、 在于它对互联网上的网页给出了一个全局的重要性排序,它使用链接来衡量整体受欢迎程度,而不是使用相关主题.
2、 算法的计算过程是可以离线完成的,这样有利于迅速响应用户的请求.
缺点:
1、 主题无关性,没有区分页面内的导航链接、广告链接和功能链接等,容易对广告页面有过高评价;
2、 旧的页面等级会比新页面高,因为新页面,即使是非常好的页面,也不会有很多链接,除非他是一个站点的子站点.
应用:
基于PageRank的理论,我们以每个微博账户的“关注”为链出链接,“粉丝”为链入链接,我们把这种以人为核心的关系,叫PeopleRank
,代码见http://blog.fens.me/hadoop-social-peoplerank/
#################################Matlab########################################
% Parameter M adjacency matrix where M_i,j represents the link from 'j' to 'i', such that for all 'j'
% sum(i, M_i,j) = 1
% Parameter d damping factor
% Parameter v_quadratic_error quadratic error for v
% Return v, a vector of ranks such that v_i is the i-th rank from [0, 1]
function [v] = rank2(M, d, v_quadratic_error)
N = size(M, 2); % N is equal to either dimension of M and the number of documents
v = rand(N, 1);
v = v ./ norm(v, 1); % This is now L1, not L2
last_v = ones(N, 1) * inf;
M_hat = (d .* M) + (((1 - d) / N) .* ones(N, N));
while(norm(v - last_v, 2) > v_quadratic_error)
last_v = v;
v = M_hat * v;
% removed the L2 norm of the iterated PR
end
end %function
##################################R语言########################################
Library(“igraph”)
page.rank (graph, algo = c("prpack", "arpack", "power"),
vids = V(graph), directed = TRUE, damping = 0.85,
personalized = NULL, weights = NULL, options = NULL)
g2 <- make_star(10)
page_rank(g2)$vector
PageRank理论与实践及用户评分应用PeopleRank算法的更多相关文章
- Java 理论与实践: 处理 InterruptedException
捕捉到它,然后怎么处理它? 很多 Java™ 语言方法,例如 Thread.sleep() 和 Object.wait(),都可以抛出InterruptedException.您不能忽略这个异常,因为 ...
- Java 理论与实践: 流行的原子——新原子类是 java.util.concurrent 的隐藏精华(转载)
简介: 在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待.无锁定的算法.在 java.util.concurrent 中添加原子变量类之后,这种情况发生了变化.请跟随并 ...
- Java 理论与实践: 处理 InterruptedException(转)
很多 Java™ 语言方法,例如 Thread.sleep() 和 Object.wait(),都可以抛出InterruptedException.您不能忽略这个异常,因为它是一个检查异常(check ...
- DDD(领域驱动设计)理论结合实践
DDD(领域驱动设计)理论结合实践 写在前面 插一句:本人超爱落网-<平凡的世界>这一期,分享给大家. 阅读目录: 关于DDD 前期分析 框架搭建 代码实现 开源-发布 后记 第一次听 ...
- Java 理论与实践: 并发集合类
Java 理论与实践: 并发集合类 DougLea的 util.concurrent 包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型 List 和 Map 的高性能的.线程安全的实现 ...
- Oozie分布式工作流——从理论和实践分析使用节点间的参数传递
Oozie支持Java Action,因此可以自定义很多的功能.本篇就从理论和实践两方面介绍下Java Action的妙用,另外还涉及到oozie中action之间的参数传递. 本文大致分为以下几个部 ...
- Java 理论与实践: 用弱引用堵住内存泄漏
弱引用使得表达对象生命周期关系变得容易了 虽然用 Java™ 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集.本月,负责保障应用程序健 ...
- CAN调度理论与实践分析
CAN调度理论与实践分析 分布式嵌入式系统是当前嵌入式系统的重要发展方向,因为它能提供更强的性能,节约系统的总体成本.但是由于各单个节点必须有通信网络相连才能协调地工作,网络就成了关键部分,没有网络提 ...
- SEO从理论到实践
GITHUB:http://www.liu12fei08fei.top/blog/12seo.html 明白seo是什么 知道怎么做 SEO从理论到实践 什么是SEO? SEO和SEM的区别 SEO和 ...
随机推荐
- C#如何反射出委托的签名,如何使用反射调用委托
本文阐述C#中如何反射出委托的签名,假如我们有委托FooDelegate定义如下 delegate double FooDelegate (string param, bool condition); ...
- python代码中碰到的问题及解决
一.针对raw_input输入的字符进行类型判断及转换: raw_input输入默认为字符,如果输入的是数字字符,想自动转换,即:输入为a,不做操作,如果输入为3,即转化为整数. 可利用try..ex ...
- python处理xml文件
参考:https://docs.python.org/2/library/xml.etree.elementtree.html 例子: <?xml version="1.0" ...
- Oracle序列(Sequence)创建、使用、修改、删除
Oracle对象课程:序列(Sequence)创建.使用.修改.删除,序列(Sequence)是用来生成连续的整数数据的对象.序列常常用来作为主键中增长列,序列中的可以升序生成,也可以降序生成.创建序 ...
- 百度之星初赛2A 1001 ALL X(HDU 5690)
All X Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- C# 正则表达式小坑 -- not enough
今天遇到了一个奇怪的报错: 相关的代码是这样的: Regex regex = new Regex("(?<=wwwroot\\).*?$"); 然后把这段正则复制到任何正则测 ...
- easyui 日期控件清空值
最近用了Easyui的日期控件datebox,项目中要将选中值清空,于是就研究了一下. 1,调用方法清空 $('#yourId').combo('setText',''); 2,更改js文件 从官网下 ...
- eclipse 自动排版
自动排版: ctrl + i 同名变量高亮: shift+alt+ o 导包: shift+ctrl +o
- iOS去除导航栏和tabbar的1px横线
1.在自己定义的导航栏中或者设计稿中经常需要去除导航栏的1px横线,主要是颜色太不协调了 去除之前的图片 要去除这1px的横线,首先应该知道它是什么,在Xcode的界面调试中可以看到,它其实是UIIm ...
- JS验证码
1.引用jquery 2.Html页面 <div> <canvas id="canvas" style="cursor: pointer; height ...