`
wbj0110
  • 浏览: 1612476 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
阅读更多

IMDB.COM是目前互联网上最为权威、系统、全面的电影资料网站,里面包括了几乎所有的电影,以及1982 年以后的电视剧集。 它所特有的电影评分系统深受影迷的欢迎,注册的用户可以给任何一部影片打分并加以评述,而网站又会根据影片所得平均分、选票的数目等计算得出影片的加权平均分并以此进行TOP250(最佳250部影片)和Bottom100(最差100部影片)的排行。

评选最佳250部电影时只考虑正式的投票者的投票结果。分值系统采用10分制,最低为awful(令人厌恶)的1分,最高为excellent(出类拔萃)的10分。值得注意的是,虽然很多影片在资料系统中得分很高,但由于未能达到TOP所要求的最低投票数而无法参加排行。

下面就一起来学习下IMDB所使用的排名算法。 imdb top 250用的是贝叶斯统计的算法得出的加权分(Weighted Rank-WR),公式如下:

  •  WR, 加权得分(weighted rating)。
  •  R,该电影的用户投票的平均得分(Rating)。
  •  v,该电影的投票人数(votes)。
  •  m,排名前 250 名的电影的最低投票数(现在为 3000)。
  •  C, 所有电影的平均得分(现在为6.9)。

仔细研究这个公式,你会发现,IMDB 为每部电影增加了 3000 张选票,并且这些选票的评分都为6.9。这样做的原因是,假设所有电影都至少有 3000 张选票,那么就都具备了进入前 250 名的评选条件;然后假设这 3000 张选票的评分是所有电影的平均得分(即假设这部电影具有平均水准);最后,用现有的观众投票进行修正,长期来看,v/(v+m)这部分的权重将越来越大,得分将慢慢接近真实情况。这样做拉近了不同电影之间投票人数的差异,使得投票人数较少的电影也有可能排名前列。

把这个公式写成更一般的形式:

  •  C,投票人数扩展的规模,是一个自行设定的常数,与整个网站的总体用户人数有关,可以等于每个项目的平均投票数。
  •  n,该项目的现有投票人数。
  •  x,该项目的每张选票的值。
  • m,总体平均分,即整个网站所有选票的算术平均值。

这种算法被称为”贝叶斯平均”(Bayesian average)。因为某种程度上,它借鉴了”贝叶斯推断”(Bayesian inference)的思想:既然不知道投票结果,那就先估计一个值,然后不断用新的信息修正,使得它越来越接近正确的值。

在这个公式中,m(总体平均分)是”先验概率”,每一次新的投票都是一个调整因子,使总体平均分不断向该项目的真实投票结果靠近。投票人数越多,该项目的”贝叶斯平均”就越接近算术平均,对排名的影响就越小。因此,这种方法可以给一些投票人数较少的项目,以相对公平的排名。

“贝叶斯平均”也有缺点,主要问题是它假设用户的投票是正态分布。比如,电影A有 10 个观众评分,5个为五星,5个为一星;电影B也有 10 个观众评分,都给了三星。这两部电影的平均得分(无论是算术平均,还是贝叶斯平均)都是三星,但是电影A可能比电影B更值得看。

解决这个问题的思路是,假定每个用户的投票都是独立事件,每次投票只有n个选项可以选择,那么这就服从“多项分布”(Multinomial distribution),就可以结合贝叶斯定理,计算该分布的期望值。由于这涉及复杂的统计学知识,这里就不深入了,感兴趣的朋友可以继续阅读 William Morgan 的How to rank products based on user input

另外对于无时间参与的评价系统,也可以参考威尔逊得分区,威尔逊得分分区的缺点在于排行榜前列总是那些票数最多的项目,新项目或者冷门的项目,很难有出头机会,排名可能会长期靠后。

参考地址:http://www.imdb.com/chart/top

分享到:
评论

相关推荐

    Keras用IMDB数据源(imdb.npz + imdb_word_index.json)

    Keras用IMDB数据源(imdb.npz + imdb_word_index.json) from tensorflow.keras.datasets import imdb (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000) # word_index is a...

    imdb.npz数据集电影评论情感二分类

    imdb.npz 电影评论数据集 ...出现Downloading data from https://s3.amazonaws.com/text-datasets/imdb.npz,网络连接失败。 此时,将下载好的imdb.npz文件放在主目录下的 .keras/datasets文件夹下即可。

    IMDB电影评分正负数据集(3个版本的imdb_full.pkl,imdb.pkl以及imdb.npz)

    在提供的压缩包中,有三个不同格式的IMDB数据集:`imdb_full.pkl`, `imdb.pkl`和`imdb.npz`。这些文件格式各具特点: 1. `imdb_full.pkl`: 这是一个Python pickle文件,通常用于存储Python对象,如字典、列表等。在...

    imdb.npz数据集

    keras的数据集 from keras.datasets import imdb (x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=20000)

    imdb.npz_keras常用数据集

    将下载好的imdb.npz文件放在主目录下的 .keras/datasets文件夹下,在ubuntu系统里, .keras/datasets文件夹是隐藏起来的,在主目录下按 ctrl+H,显示隐藏文件夹。这样就不用修改代码了,./keras/datasets 就是代码中...

    imdb.npz 数据集

    《imdb.npz数据集:电影台词情感分析的宝贵资源》 在当今的自然语言处理(NLP)领域,数据集扮演着至关重要的角色。imdb.npz数据集是一个广泛用于训练和测试情感分析模型的资源,特别是对于那些正在学习神经网络的...

    imdb.npz.zip

    标题 "imdb.npz.zip" 指向的是一个压缩文件,其中包含了IMDB数据集的NPZ格式版本。这个数据集是机器学习和自然语言处理(NLP)领域的一个经典资源,尤其适用于情感分析任务。在TensorFlow的学习过程中,这个数据集常...

    著名的影评数据集imdb.zip

    著名的影评数据集imdb.zip里面包含原生数据集raw,train和text数据集分别含有pos和neg样例集

    imdb.npz reuters.npz boston_housing.npz

    本篇将详细介绍三个由Keras提供的数据集:`imdb.npz`、`reuters.npz` 和 `boston_housing.npz`。 1. **IMDB 数据集 (imdb.npz)** IMDB 数据集是电影评论的情感分析数据集,主要用于文本分类任务。它包含了50,000条...

    imdb.npz Keras用

    百度网盘地址:链接:https://pan.baidu.com/s/1L7rNOHsFsAJSNirWM4ykMw 密码:kjpa 。。。一开始我以为为啥这样的资源都需要资源分,待我分享的时候我懂了。资源分最少一分。。。

    IMDB数据集.CSV

    IMDB数据集,包括 5035部电影的IMDB评分,评分人数,主要导演,主要演员,评论人数,预算及票房,电影类型及出品年份国家。

    imdb完整的数据集

    imdb.npz和imdb_word_index.json 互联网电影资料库(Internet Movie Database,简称IMDb)是一个关于电影演员、电影、电视节目、电视明星和电影制作的在线数据库。

    LSTM官方训练样本数据imdb.pkl

    Theano中LSTM官方教程例子中的数据imdb.pkl

    电影评论数据imdb.npz

    imdb.npz 拷贝到 C:\Users\Admin\.keras\datasets import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers #电影评论数据 #imdb.npz 拷贝到 C:\Users\Admin\.keras\datasets ...

    imdb完整数据集

    包含文件 imdb.npz imdb_word_index.json 互联网电影资料库(Internet Movie Database,简称IMDb)是一个关于电影演员、电影、电视节目、电视明星和电影制作的在线数据库。

    Tensorflow训练数据集:imdb.rar

    在提供的压缩包“imdb.npz”中,我们可以看到四个文件:`x_train.npy`、`x_test.npy`、`y_train.npy`和`y_test.npy`,它们分别存储了训练集和测试集的特征以及对应的标签。 1. **数据集介绍**: IMDB数据集是一个...

    IMDB数据集 IMDB数据集

    IMDB数据集 IMDB数据集

    imdb-node:IMDB抓取API

    imdb('http://www.imdb.com/title/tt0096895/', function(resultData) { console.log(resultData); }); resultData { id: 'tt0096895', title: 'Batman', duration: '126 min', classification: 'PG-13', ...

Global site tag (gtag.js) - Google Analytics