第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 收敛。

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

 

 

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

相关文章推荐

《谁排第一?关于评价和排序的科学》中文版的纠错

最近,我读了一本好书——《谁排第一?关于评价和排序的科学》。这本书的作者是Amy N. Langville和Carl D.Meyer,译者是郭思羽。这本书的姊妹篇是《网页排名PR值及其他——搜索引擎排...

第1章 排名概述 阅读

最近正在看一本书——《谁排第一?关于评价和排序的科学》,为了加深记忆,我将在博客上记录下书中的要点,并结合自己的理解去阐述解释书的内容。         第一章是综述篇,最让人印象深刻的是阿罗的不可...

【代码阅读的方法与实践】第4章 C数据结构

第4章 C数据结构 根据底层的抽象数据类型理解的数据结构操作。 C语言中,一般使用内建的数组类型实现向量,不再对底层实现进行抽象。 N个元素的数组可以被序列for(i=0; i完全处理;所有其他变体都...

阅读徐宜生《Android群英传》的笔记——第4章 ListView 使用技巧——到4.1.7

4.1 ListView 常用优化技巧ListView 的基本用法相信大多数的读者都已经能够非常熟练的使用了,下面我们就着重来学习一下使用 ListView 的技巧。4.1.1 使用 ViewHold...

Uva11732 字典树的应用 邻接矩阵(或称左孩子,右兄弟法)保存字典树

题意 给你一些单词,给你一个字符串比较函数,所有单词比较字典序,问总比较的次数是多少。 思路 大体思路就是两个字符串,设公共前缀的长len,比较次数为2*len+1,若匹配成功则比较次数2*len...

UVA 11732 strcmp() Anyone? Trie的左儿子右兄弟表示法

思考了一会儿,发现这题目要一层层的考虑。         即,在插入一个字符串str到Trie的时候,同时更新答案         两个字符串,在对比到第i个位置不同时,通过的比较次数是(i  ...

uva 11732 "strcmp()" Anyone? (trie+左儿子右兄弟表示法)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28438 题意:定义了一个strcmp()函数,如图: 然后给出n个...
  • w20810
  • w20810
  • 2015年08月22日 10:00
  • 636

UVA 11732 "strcmp()" Anyone? Trie树 + 树的左儿子右兄弟存储法

题目大意: 在C/C++的函数比较的STL中存在这样的字符串比较函数: int strcmp(char *s, char *t) { int i; for (i=0; s[i]==...

层号表示法转孩子兄弟表示法(二叉树)

孩子兄弟表示法:左儿子,右兄弟 思路:建树建完一个节点,将其压入栈,以便下一个元素与他比较层号 #include #include #include #define maxn 1111 #defi...

数值分析_(7-4)_第4章__插值法.ppt

  • 2014年01月22日 15:17
  • 337KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第4章 基纳法 阅读(PageRank的兄弟)
举报原因:
原因补充:

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