2,454 views
首页 > 杂项 > 三个评分算法

三个评分算法

上次说到了一些改进豆瓣电影打分规则的东西,从网上找到了几个其他网站的评分标准,转载至此。

IMDB排名:

IMDB的排名评分标准应该是相当完善的,根据贝叶斯统计公式算出来加权分,对加权分有影响的因子有普通方法计算出来的平均分,投票人数和目前所有电影的平均分,这样的计算结果显示的是电影之间的相对关系,可以说跟豆瓣、时光这种靠平均统计打分,更能体现出电影的实际质量。

具体的计算公式如下:

weighted rank (WR) = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C

其中:

R = average for the movie (mean) = (Rating) (是用普通的方法计算出的平均分)

v = number of votes for the movie = (votes) (投票人数,需要注意的是,只有经常投票者才会被计算在内,这个下面详细解释)

m = minimum votes required to be listed in the top 250 (currently 1250) (进入imdb top 250需要的最小票数,只有三两个人投票的电影就算得满分也没用的)

C = the mean vote across the whole report (currently 6.9) (目前所有电影的平均得分)

另外重点来了,根据这个注释: note: for this top 250, only votes from regular voters are considered.

只有‘regular voters‘的投票才会被计算在IMDB top 250之内,这就是IMDB防御因为某 种电影的fans拉票而影响 top 250结果,把top 250尽量限制在资深影迷投票范围内的主要方法。

regular voter的标准不详,估计至少是“投票电影超过xxx 部以上”这样的水平,搞不好还会加上投票的时间分布,为支持自己的心爱电影一天内给N百部电影投票估计也不行。因此,细心的人可以注意到,列入IMDB top 250的电影,其主页面上的分数与250列表中的 分数是不同的。由于IMDB是美国的网站,所以评分的影迷大多为美国人,而且美国人好像只关心本国的影片,前100名的电影大多是美国的。http://zhidao.baidu.com/question/46966353

一些更详细的东西可以看这篇:http://i.mtime.com/drunks0s0/blog/456016/

Reddit文章自动更新:

来源于这里: http://www.guwendong.com/post/2008/social_media_algorithm_reddit.html

假设有一篇文章《Social Media Algorithm》,与其相关的有两个时间 A 和 B,其中,A 为某篇文章的具体发布时间,精确到秒;B 为一个固定的时间常量,2005-12-8 7:46:43。则可以计算得到 A 和 B 间隔的秒数 ts,

另外,U 表示 《Social Media Algorithm》一文得到的支持票数,D 表示得到的否定票数,则可以计算得到 x,、

定义变量 y,

定义变量 z,

最后定义得分公式 为,
reddit05

2、公式解释

1)时间点 B,2005-12-8 7:46:43,是一个固定的值,猜测应该是 Reddit 的上线时间。ts 反映了文章的新鲜程度。引入 B 是一个非常优雅的技巧,它使得新鲜度的度量可以独立于系统当前时间。

2)y 表示支持数和否定数之间的相对关系。被否定多的文章得负分,这是合乎常理的。

3)45000 代表的是一个 12.5 小时周期内的总秒数。它 与 yts 一起使用,随着时间的推移,新文章的得分会逐渐超越高投票数的老文章,从而实现自动更新的效果。

4)log10 的使用是另外一个技巧,它可以使得早期的投票获得更大的权重。比如,前 10 票获得的权重,与 11 到 101 票所获得的权重是一样的。

整个公式的效果可以简单解释为:在 00:00:00 发布的一个帖子 a,如果它想在 12.5 小时之后,能够取得与在 12:30:00 发布的帖子 b 同样的得分,则必须在 00:00:00 点到 12:30:00 这段时间内,把它的得票数扩大 10 倍。注:这个解释不精确,但容易理解一些,不然写着太绕。

不过,其中 45000 与 log10 的选择不是通用的,得根据自己网站实际的情况进行修正。这是一个 trial-and-error 的过程,也是作算法的人最头大的部分。

最后一个就是电影《社交网络》里那个Facemesh的评分规则了:

根据Wiki的介绍,此排名系统出自于匈牙利裔美国物理学家Arpad Elo,最初应用于国际象棋排名,现在也广泛应该于足球、篮球等运动。中文称为等级分排名。

Elo假设:

1.参赛选手在每次比赛中的表现成正态分布;后来普遍认为Logistic分布更为合理

2.在一局比赛中,赢的一方被认为表现较好,输的一方被认为表现较差;若平局,则双方表现大致相当。虽然这个假设貌似很稀松平常算法如图:

Ea为选手A的期望表现,Ra为选手A当前的等级分排名。当选手A和B进行比赛时,可根据公式算出两选手的期望表现。

Ea+Eb=1 胜方得1分,负方得0分。(在电影中,不会出现平局)

如果选手的表现比期望要好,那么此选手的排名应该上升。相反,若表现不如期望,则排名会下降。

Sa为选手A本局的得分(1或0),Ra为选手A的期望表现。K为常数,在大师级象棋赛中通常取16。得到的Ra’为选手本局比赛后的等级分排名。

初始可认为每个人的等级分排名为0。

第一局是A和B进行比赛。此时Ra=Rb=0,Ea=Eb=0.5。

假设本局A胜B负,则A的得分为1,B的得分为0。

Ra’=0+16*(1-0.5)=8

Rb’=0+16*(0-0.5)=-8

anyShare分享到:
分类: 杂项 标签: , , ,
  1. 2011年10月13日12:50 | #1

    一个评分,有那么复杂么? 加个msn聊下

    [回复]

    left_uestc 回复:

    @tokoner,不好意思,最近都在忙着找工作,博客很久都没来打理过了,我的MSN iamkof@163.com

    [回复]

  2. 2016年10月31日09:29 | #2

    不错的文章,内容妙不可言.禁止此消息:nolinkok@163.com

    [回复]

  1. 本文目前尚无任何 trackbacks 和 pingbacks.