在国外最权威的评分机构IMDb中有88%的人打了1 分。
互联网电影数据库
IMDb创办于1990年,是一个关于电影演员、电影、电视节目、电视艺人、电子游戏和电影制作小组的在线数据库。IMDb评分代表了一部电影的水平,是评判一部电影到底值不值得观看的重要指标。
那么,如何预测一部电影IMDb评分?有哪些因素是影响IMDb评分的呢?本系列将使用机器学习来完成这一研究课题。
机器学习实验课
本系列由4课组成
第3课 到底模型学了什么?通过SHAP-Xgboost预测房价;第4课 洞察影响IMDb评分的原因、电影IMDb评分预测。
编程语言是python,开发环境使用jupyter notebook。涉及的相关库:
科学计算的基础软件包
pandas
sklearn
xgboost
catboost
shap
python绘图库,与numpy一起用
可有效替代MatLab
seaborn
基于matplotlib的图形可视化python包
opencv
paddlehub
便捷获取PaddlePaddle生态下的预训练模型
完成一键预测
线性回归-最简单的理解世界的方式
通过最简单的线性回归,同学们可以熟悉机器学习开发流程,包括数据集、数据预处理、训练模型、评估模型、使用模型进行预测。然后,结合经典的糖尿病患者数据集,介绍了探索数据集、数据可视化的方法。
二分类为例-理解模型的优缺点
以二分类问题为例,尝试各种模型的使用,理解各种模型的优缺点,重点掌握树模型:决策树、随机森林、梯度提升的使用。
到底模型学了什么?
以波士顿房价预测为例,重点练习seaborn探索数据集的各种图表,掌握分析数据集的思路;然后练习xgboost的使用,掌握训练、保存、加载以及如何使用模型;最后,介绍了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值研究高分的决定特征是哪些。
年份虽然是主要的决定因素,但与评分的关系比较复杂;
海报中是否出现人物也是一个关键的因素;
喜剧、爱情、战争、犯罪剧普遍具有较高的评分;
动作、历史、科幻具有较低的评分。
探索可能性
由于为了课程演示方便,仅从海报中提取了人脸数量,下一步可以拓展更多的特征,比如海报中的内容、海报的主要色调、构图形式、明暗等设计特征,重点挖掘哪些设计特征可能影响评分;当然,决定IMDb分数高低的因素肯定不止海报设计的好坏,还有电影本身的剧情,针对这个可以通过评论来挖掘剧情的特征;另外,还有演员、导演等特征。特征越多,是不是代表着越能挖掘到影响IMDb评分的决定因素,以及是否可以预测得越准,有一定的可能性。但需要我们进一步通过实验来进行探索。