龙空技术网

机器学习:聊聊电影评分算法——贝叶斯平均算法

你看我独角兽吗 698

前言:

今天咱们对“贝叶斯得分”大概比较注重,小伙伴们都需要了解一些“贝叶斯得分”的相关知识。那么小编在网摘上汇集了一些关于“贝叶斯得分””的相关知识,希望姐妹们能喜欢,姐妹们快快来了解一下吧!

怎么评分?

之前有看过一系列在网站排名时用的热度算法文章,这次我想把它们按自己的理解再分享给大家。

很多人看电影前都会去依评分来预估电影的好看程度,例如豆瓣评分、烂番茄和IMDB评分等,这些在一定程度上都给我们对正在上映的电影有一个大概的观众反馈。那么,这些评分的计算方式是怎么评价的?是否能够相对客观衡量?

上述是IMDB的网站TOP250和相应的评分(热度)算法计算公式,在IMDB中,观众可以对每部电影投票,最低为1分,最高为10分。

在普通的热度计算中,我们会根据每部电影的投票结果计算出平均得分,再通过平均得分给到最终TOP250,但是像小众电影如《赌博默示录》和刚上映的好莱坞电影《蜘蛛侠》的投票能够相比么,极端一些,可能一个只有100人看,另一个有几十W人在观影,那么由于样本集不同,投票更难反映出电影的好坏。

贝叶斯平均

IMDB根据这种不均衡情况,在设计比较两部电影的好坏时,是基于同等人数的观影作为标准的。

具体计算公式如下:

其中:

WR:该电影的最终得分;

v:该电影的投票人数;

m:排名TOP250电影的最低投票数;

R:该电影的用户投票的平均得分;

C:所有电影的平均得分。

从公式右边看,你会发现对应的v/(v+m)和m/(v+m)的加总为1,右边为:

即假设这部电影有平均水准,左边为:

通过用现有的观众投票进行修正v/(v+m)和m/(v+m)的偏重,长期看v/(v+m)这部分的权重将越来越大,得分将慢慢接近真实情况。

对一个事件D,可以将该公式一般化如下:

其中:

R:事件D的发生次数的平均水准;

v:事件D的发生次数;

m:扩展发生次数,设为常数,通过增加发生次数使D的样本在整体样本中处于平均水平;

C:整体平均水准,这样能够满足先验条件,事件D处于平均水平。

这种算法被称为贝叶斯平均算法,因为其中包含了对事件D是先验预估,即假设事件D的水平处于平均水准,然后会随着发生的次数变多逐渐修正事件D的真实水准。

因此,这种算法可以在IMDB中给一些相对投票比较少的电影计算出较为公平的排名。

总结

贝叶斯平均算法是利用贝叶斯推断,预设事件D在全部事件中处于平均水准,再用自身发生的次数和结果来不断修正自身的真实水准。但是其缺点是假设每次事件发生所产生的影响需服从正态分布,例如用户的评分。例如电影A有10位观众评分,5个一星,5个五星,电影B有10位观众评分,都给了三星。结果两部都是三星,但是可能电影A比电影B更值得看。

标签: #贝叶斯得分