如何预测一部电影的IMDb评分? | Mixlab跨学科课程

在国外最权威的评分机构IMDb中有88%的人打了
那么问题来了,IMDb是什么?

互联网电影数据库

Internet Movie Database
简称IMDb
IMDb创办于1990年,是一个关于电影演员、电影、电视节目、电视艺人、电子游戏和电影制作小组的在线数据库。IMDb评分代表了一部电影的水平,是评判一部电影到底值不值得观看的重要指标。

那么,如何预测一部电影IMDb评分?有哪些因素是影响IMDb评分的呢?本系列将使用机器学习来完成这一研究课题。

机器学习实验课

本系列由4课组成

第1课  线性回归-最简单的理解世界的方式
第2课 二分类为例-理解模型的优缺点;
第3课 到底模型学了什么?通过SHAP-Xgboost预测房价;
第4课 洞察影响IMDb评分的原因、电影IMDb评分预测。

编程语言是python,开发环境使用jupyter notebook。涉及的相关库:

numpy

科学计算的基础软件包

pandas

基于numpy的分析结构化数据的工具包

sklearn

非常强力的机器学习库

xgboost

分布式梯度提升算法库

catboost

一种能够很好地处理类别型特征的梯度提升算法库

shap

可解释机器学习库
matplotlib

python绘图库,与numpy一起用

可有效替代MatLab

seaborn

基于matplotlib的图形可视化python包

opencv

跨平台计算机视觉和机器学习软件库

paddlehub

便捷获取PaddlePaddle生态下的预训练模型

完成一键预测

第一课 

线性回归-最简单的理解世界的方式

通过最简单的线性回归,同学们可以熟悉机器学习开发流程,包括数据集、数据预处理、训练模型、评估模型、使用模型进行预测。
然后,结合经典的糖尿病患者数据集,介绍了探索数据集、数据可视化的方法。
第二课

二分类为例-理解模型的优缺点

以二分类问题为例,尝试各种模型的使用,理解各种模型的优缺点,重点掌握树模型:决策树、随机森林、梯度提升的使用。
第三课

到底模型学了什么?

以波士顿房价预测为例,重点练习seaborn探索数据集的各种图表,掌握分析数据集的思路;然后练习xgboost的使用,掌握训练、保存、加载以及如何使用模型;最后,介绍了SHAP值,通过SHAP值来了解模型学习到的特征分布。
SHAP
是一个python库,基于Shapley值的方法,使用合作博弈论来解释机器学习模型学习输入、输出。
Shapley值由Shapley在1953年创造,主要思想是根据玩家对总支出的贡献来为玩家分配支出的方法,玩家根据贡献值在联盟中进行合作并从这种合作中获得一定的收益。

在波士顿房价的预测中,我们可以知道模型认为,人口状况和住宅的房间数量是影响房价的关键因素。

针对每个预测的房价结果,还可以给出到底是因为什么因素所得出的结论。
比如下图所示,房价16.6高于基础报价14.14是由CRIM(犯罪率)和LSTAT(人口状况)的情况所增加的。表达为数学公式可以为:
f(x)=base_value+shape_values.sum()
第四课

洞察IMDb评分及评分预测

使用kaggle上的IMDb的电影数据集,通过深度学习识别电影海报的人脸数量,作为特征补充到数据集,然后把IMDb的评分作为目标值,训练一个基于catboost的回归模型,并通过shap值研究高分的决定特征是哪些。
结合以上2张图,我们可以有以下的洞察:

年份虽然是主要的决定因素,但与评分的关系比较复杂;

海报中是否出现人物也是一个关键的因素;

喜剧、爱情、战争、犯罪剧普遍具有较高的评分;

动作、历史、科幻具有较低的评分。


探索可能性

由于为了课程演示方便,仅从海报中提取了人脸数量,下一步可以拓展更多的特征,比如海报中的内容、海报的主要色调、构图形式、明暗等设计特征,重点挖掘哪些设计特征可能影响评分;
当然,决定IMDb分数高低的因素肯定不止海报设计的好坏,还有电影本身的剧情,针对这个可以通过评论来挖掘剧情的特征;另外,还有演员、导演等特征。
特征越多,是不是代表着越能挖掘到影响IMDb评分的决定因素,以及是否可以预测得越准,有一定的可能性。但需要我们进一步通过实验来进行探索。
(0)

相关推荐