第4章 基纳法 阅读(PageRank的兄弟)

原创 2015年07月06日 23:03:30

        基纳是一名数学家,专攻数学在生物学中的应用。基纳法和大家熟知的PageRank算法是一脉相承的。1907年到1912年间,佩隆和弗罗贝尼乌斯提出了非负矩阵理论。1993年,基纳利用非负矩阵理论构建他的评分和排名体系。1996-1998年,谷歌创始人布林和佩奇按类似于基纳的方法使用非负矩阵理论,提出了PageRank算法。

       佩隆和弗罗贝尼乌斯、基纳及其先驱以及谷歌创始人的故事说明,认可与财富更多地被给予了那些将想法应用于一个有用的目的的人,而不是那些仅仅提出某个想法的人。

        基纳法的核心是利用特征值和特征向量来进行评分和排名,其步骤如下:

1、选择体现实力的属性。例如队伍 i 击败队伍 j 的次数,或队伍 i 从队伍 j 身上取得的分数。

2、设 aij = 队伍 i 从队伍 j 身上取得的分数, 保证每个 aij 均为非负数。

3、aij 的第一次替换。利用拉普拉斯的“承续法则”,重新定义aij , aij = ( aij+ 1 ) / ( aij + aji +2 )。

4、aij 的第二次替换。构建偏好函数h(x) = 1 / 2 + sgn{ x - (1/2) } sqrt( | 2x-1 | ) / 2 ,并进行替换aij <-- h(aij )

5、aij 的第三次替换。aij <--aij / ni (其中,ni = 队伍 i 进行的比赛场数)

6、对球队之间相互作用的程度以及由此得到的统计数据aij施加3个并不苛刻的约束。依次为非负性,不可约性,素性。

7、用幂法求取评分向量r

     简单解释一下,第三步到第五步的3次变换,都有点归一化的味道,是为了方便在评分和实力之间建立联系。基纳法的根本是构造了一个方程Ar = λr ,矩阵A中的统计数据为 aij ,r为评分向量,λ为常量,Ar表示实力向量。

            

     如果能找到矩阵A的特征值和特征向量,就能得到评分向量r和实力向量s。为了方便解这个方程,基纳对球队之间相互作用的程度以及由此得到的统计数据 aij 施加3个并不苛刻的约束。

     1、非负性。保证每一个 aij 均非负。

     2、不可约性。做一个无向图图,结点是队伍,如果两队有过交锋,那么图中这两个结点之间有边。如果这个图是连通图,那么称这个联赛是不可约的。

     3、素性。每两只队伍都被均等数量的比赛所联系。

     如果,只施加约束1和2,可以用佩隆-弗罗贝尼乌斯定理求解方程Ar = λr,获取唯一评分向量r。由该方法求得的评分向量有一个重要性质,即每支队伍的分数 ri 在0和1之间,所有队伍的分数之和等于1。

     如果,施加以上三个约束,那么可以用一种更简单的方法求解评分向量,即幂法。

     当约束2和3不成立时,可以通过对A施加一个小的扰动并以之来替换掉原来的A。即A <--A +E ,E中的每个值都相等,该值非常小,共m*m个相等的值,m为参赛队伍数目。这一做法的效果相当于在每两支队伍之间都引入了一场虚拟比赛,这些虚拟比赛的统计数据都足够小,从而不会扭曲真实比赛中所蕴含的信息。经过扰动后,每两支队伍之间都有边,是一个完全图,所以它是连通的,每两只队伍都被1场比赛所联系,因此不可约性和素性就都得到了保证。

     基纳法中的幂法和PageRank中的幂法相似,核心步骤是重复执行r <--  Ar 步骤,直至r 收敛。

     基纳评分反映了长期胜率,但没有给出对象短期情况的任何信息,对于预测单场比赛的分差而言,它几乎毫无用处。

 

 

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

lua程序设计第二版 读书笔记(5-8章)

书本下载地址                       http://download.csdn.net/detail/myy2012/5349646 本部分下载地址               ...
  • myy2012
  • myy2012
  • 2013年05月09日 17:04
  • 1206

浅谈SVM(四)

三、非线性 SVM 1、引子 \quad为了将线性 SVM 拓展到非线性 SVM,我们对线性 SVM 进行简单地分析,首先就是关于我们的超平面,对于一个数据点 xx 进行分类,其实就是通过把 x...
  • u011479336
  • u011479336
  • 2017年05月02日 10:52
  • 155

The Definitive Antlr 4 第4章学习笔记

The Definitive Antlr 4 Reference 2nd Edition  第4章第一小节 学习笔记 匹配算数表达式语言 本例中,只使用基本的算数运算(加,减,乘,除),括号...
  • Revivedsun
  • Revivedsun
  • 2016年05月09日 23:47
  • 905

Netty In Action中文版 - 第三章:Netty核心概念

注:本篇内容出自《Netty In Action》一书;         注:本人原创译文,转载请注明出处!...
  • abc_key
  • abc_key
  • 2014年07月12日 11:34
  • 11682

《数学之美》阅读笔记part2——第16章到第31章

第16章 信息指纹及其应用 1 信息指纹 将5000亿个网址随机地映射到128位二进制即16个字节的整数空间中,这16个字节的随机数就称作该网址的信息指纹。 伪随机数产生器算法PRNG:最早的冯...
  • vivian_ll
  • vivian_ll
  • 2017年06月03日 16:16
  • 358

第四章 Transact-SQL 语言基础

根据其完成的具体功能,可以将T-SQL语句分为4类:数据操作语句、数据定义语句、数据控制语句和一些附加的语言元素。 数据操作语句:select  insert  delete update 数据定义语...
  • enen199202
  • enen199202
  • 2015年09月15日 19:33
  • 214

C++ Primer Plus 课后习题 第四章

//4-1 #include using namespace std; int main(){ char fn[20],ln[20],grade; int age; cout
  • kimiszc
  • kimiszc
  • 2015年10月04日 17:36
  • 200

Java 数据库 第四章 使用DML语句更改数据

第四章 使用DML语句更改数据 添加新数据 插入单行记录 向表中添加数据的SQL语句是INSERT 基本语法: insert into 表名(列名列表) values(值列表) ...
  • bluefeelzl
  • bluefeelzl
  • 2015年10月26日 22:11
  • 276

第4章 配置网络环境

第 4 章:配置网络环境返回课程列表 目的本章帮助您配置和管理网络环境,以便用户能够访问数据库。主题本章讨论了以下内容: 使用 Enterprise Manager Net Services Adm...
  • kuailexq2000
  • kuailexq2000
  • 2006年03月27日 13:59
  • 567

《利用Python进行数据分析》笔记---第4章NumPy基础:数组和矢量计算

写在前面的话:实例中的所有数据都是在GitHub上下载的,打包下载即可。 地址是:http://github.com/pydata/pydata-book还有一定要说明的:我使用的是Python2...
  • wangshuang1631
  • wangshuang1631
  • 2017年08月02日 19:17
  • 3441
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第4章 基纳法 阅读(PageRank的兄弟)
举报原因:
原因补充:

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