圆园21年第2
期一、引言
在大数据时代,人们对于互联网的应用已经贯彻到生活的方方面面,“电影排行榜”作为电影质量内容评比的呈现方式,已经广泛进入大众的视野中。国内具有代表性的电影评分平台是豆瓣网,其中的Top 250电影榜单是豆瓣电影榜单项目的核心呈现。用户通过观看电影后对其做出评价和判断,除了能够表明自己的喜好,还可以对电影形成口碑效应,所以如果能够对电影的评分进行预测,就可以帮助观众在观影的选择上提供标准和依据,也可以为影院的排片计划、视频网站的营销等提供参考。
关于电影评分预测的研究,国内外的学者也做了许多贡献。Karl Persson (2015)从IMDB 网站收集了3376部好莱坞电影的属性特征信息,构建随机森林模型和支持向量机模型对电影评分进行预测。刘昌明(2017)提出了基于机器学习算法和电影特征的电影评分混合预测模型,并对豆瓣网上的电影进行预测。陆君之(2018)基于Spark Mllib 机器学习框架,通过随机森林回归算法构建电影评分预测模型,结果较好。总体上来看,国内外学者对于电影的预测都有所研究,但相比来说,国外关于电影的预测更为成熟,国内针对电影预测模型的研究还有提升的空间。
本文用八爪鱼采集器对豆瓣Top 250电影榜单中的相关信息进行爬取,对整理后的数据进行探索分析,研究我国电影和其他地区电影评分是否有显著差异,并利用机器学习相关算法构建电影评分预测模型,从而为大众观影和我国电影制作提供一定的参考。
二、豆瓣Top 250电影数据的获取
1.豆瓣Top 250电影榜单相关概念介绍。豆瓣网是一个
分享与评论的社区网站,向用户提供关于书籍、电影、音乐等作品的相关信息,关于这些信息的描述和评论都由用户提供,是Web 2.0网站中极具特的一个网站。豆瓣电影作为
豆瓣网中很重要的一个组成部分,为用户提供电影相关的信息,如当下正在上映的电影的介绍、排片、票价以及评价等。用户可以标记自己想看或者看过的电影,并分享自己的感悟。Top 250电影榜单是根据每部影片看过的人数以及该影片所得的评价等综合数据分析得出的,代表了广大用户的电影偏好。
2.数据获取及清洗。本文选择八爪鱼采集器对豆瓣Top 250
电影榜单中的相关信息进行爬取,通过在首页输入豆瓣Top
250电影的网址“https ://movie.douban/top250”进入创建采集流程界面。最终共计爬取到250条信息,利用Python 中的Pandas 库进行数据清洗后得到20个字段,分别是电影名(movie )、评分(score )、评价人数(num )、评五星人数(star5)、评四星人数(star4)、评三星人数(star3)、评二星人数(star2)、评一星人数(star1)、短评数(short )、导演(director )、编剧(writ ⁃er )、演员1(actor1)、演员2(actor2)、演员3(actor3)、类型1(type1)、类型2(type2)、制片地区(region )、上映年份(year )、
上映月份(month )和片长(time )。
三、豆瓣Top 250电影探索性分析
1.各地区电影数量。将豆瓣Top 250电影的产地分为英国、
美国、意大利、法国、韩国、日本、中国,如图1所示。由于其余地区的电影数量较少,本文不做展示。
在豆瓣Top 250电影榜单中,美国电影共114部,占总体的45.6%。其次是中国电影共41部,其中包括了中国内地电影16部,中国香港电影19部,电影6部。另外,日本电影32部,英国电影17部,韩国电影10部。由此可以看出,西方国家对中国电影文化具有一定影响。由于豆瓣的用户大多是年轻人,而美国电影之所以受到年轻人较高的评价和其电影文化与传播是分不开的。另外,针对日本电影做进一步的分析,可以发现大部分电影为动漫,动漫是日本软文化中重要的一部分,也反映了年轻人对于动漫文化的偏
豆瓣Top 250电影数据挖掘及评分预测
郭明欣
摘要:随着新媒体技术和大数据的发展,多元电影榜单文化生态正在形成。在众多的互联网电影榜单中,豆瓣电影Top 250电影榜单是颇具代表性的。本文通过采集该榜单中的信息,并利用Python 对这些电影进行数据挖掘,经过探索性分析和数据可视化直观展现出该榜单电影的相关信息,再结合机器学习算法构建电影评分预测模型。预测结果揭示了在豆瓣Top 250电影榜单中,美国电影依然是核心构成,大部分影片评分集中在8.5~9.3分。Gradient Boosting 回归模型对于电影评分的预测结果最为理想。
关键词:豆瓣电影;Python ;数据挖掘;评分预测中图分类号:G206
文献标识码:A
作者单位:河北经贸大学数学与统计学学院
经济纵横
11
403020100
8.38.48.58.68.78.88.99.09.19.29.39.49.59.69.7
4
1
142741
44
30
2120
23
13
5
5
2
1
45403530252015
1050
32
42
228.868.838.798.919.07
8.938.88
8.948.898.848.75
1919161615
141411
9.109.059.008.958.908.858.808.758.708.658.608.55
爱情喜剧悬疑家庭剧情动作犯罪奇幻动画科幻惊悚
电影数量
评分均值
好。
2.电影评分总体分布情况。因为选取的是Top 250电影
榜单,所以电影的评分相对来说都比较高,集中在8~10分,统计各个分数的电影数量如图2所示。
图2各分数电影数量图
由图2可知,爬取的电影中评分最低的为8.3分,最高的为9.7分,有93.2%的电影评分集中在8.5~9.3分,大部分电影评分都在8.5分及以上,说明这些电影的质量相对来说还是很高的。另外评分过高的电影很少,说明观众对于电影的偏好是不同的,有人看来是高分的电影并不是所有人都会喜欢。
3.电影类型分析。为了更好地了解观众所关注的电影类
型,首先利用Python 中的wordcloud 词语生成库制作豆瓣Top 250电影类型词云图,如图3所示。
图3豆瓣Top 250电影类型词云图
由图3可以看出,在榜单中出现频率最高的是爱情类的电影。其次是喜剧、悬疑、家庭和剧情等类型的电影,歌舞类电影出现频率很少。
再经过统计分析,在豆瓣Top 250电影榜单中,电影类型主要分为爱情、喜剧、悬疑、家庭、剧情、动作、犯罪等20个
类型。根据电影分类和数量情况,选取有10部以上的电影类
型进行电影数量和评分均值分析,如图4所示。
图4各类型电影数量及评分均值图
由图4可知,电影数量大于10的共有十类电影。爱情类的电影最多,共有42部。其次是喜剧类的电影,共32部。悬疑类电影22部,家庭类电影19部,剧情类电影19部,动作类和犯罪类电影均为16部。奇幻、动画、科幻和惊悚类的电影相对来说数量较少,但均有10部以上。另外,大部分类型的电影评分均值在8.9分左右。最高的是剧情类电影,评分均值为9.07分,最低的为惊悚类电影,评分均值为8.75分。
四尧豆瓣Top 250电影评分预测
本文选取了随机森林回归算法、回归树算法和梯度提升回归算法对豆瓣Top 250电影的数据进行训练和评分预测。通过对三种算法预测结果进行评估,选取了梯度提升回归算法对实验数据进行评分预测。
1.算法介绍。
(1)随机森林回归算法。随机森林回归算法是基于决策
喜剧片排行
树分类器所构造的融合算法,是由多棵决策树组成的。该算法通过有放回的抽样方式,从样本数据中进行多次抽样,针对每一个样本子集构建对应的决策树,再对所有决策树的预测结果进行平均或者投票,进而选取最优预测结果。该算法的优点是对于变量之间的相关性不敏感,避免了多重共线性的影响。
(2)回归树算法。决策树回归算法是一种比较常见的回
归和分类的算法,通过规则对数据进行回归,以构建回归树模型。创建决策回归树需要利用观察数据得到的值建立一个
用于构建模型的规则,在模型中每一个特征属性都是一个变
济纵横
100806040200
114
32
41
171086美国
中国日本
英国
韩国
法国
意大利
图1各地区电影数量图
12
圆园21年第2
期模型随机森林回归树Gradient Boosting
R 2
0.70400.74860.9116准确率0.25400.74860.9116
MSE
2.00001.69840.5974MAE
1.07930.96830.6268电影乱世佳人看不见的客人小森林驯龙高手阿飞正传
预测评分9.17758.80028.98068.71778.5237
实际评分9.38.89.08.78.5
量,对一个变量按照规则进行分类后,使得两部分的残差平方和达到最小,以形成一个具有良好效果的回归树。
(3)梯度提升回归算法。梯度提升回归算法是目前机器
学习算法中比较有代表性的算法,可以用于回归或分类问题,常用的梯度提升算法包括Adaboost 和Gradient Boosting 算法。本文采用Gradient Boosting 算法对电影评分进行预测。
Gradient Boosting 算法的原理是利用损失函数评价模型
的可靠程度,损失函数越大,说明该模型的预测精确度越小。
根据建立的损失函数,模型的每一次迭代会根据梯度下降的方向进行模型的完善,逐步降低模型的损失函数值。Gradi ⁃ent Boosting 算法是以回归树为基础进行模型构建的,以上一棵树的残差作为下一个学习的目标,从而构建新的回归树,
直至模型的残差达到允许的范围。
2.模型构建及结果分析。
(1)特征选取及数据处理。通过对特征信息的处理,本文根据各个特征信息的特点,并参考相关文献,选取了9个特征变量进行建模,分别是score 、num 、star5、star4、star3、star2、short 、time 和year 。其中score 作为目标变量,其他8个变量作为预测变量。
本文通过del_selection 中的train_test_split ()将250条数据划分训练集和测试集,然后利用StandardScaler ()对预测变量的训练集数据和测试集数据均进行标准化处理,并利用标准化后的数据构建预测模型。
(2)模型构建。本文利用semble 中的Random ⁃
ForestClassifier 和GradientBoostingRegressor 实现随机森林算法和梯度提升回归算法,sklearn 中的tree 包实现回归树算
法。将处理好的训练集数据分别使用这三种算法来构建随机森林回归模型、Gradient Boosting 回归模型和回归树模型,并利用predict ()方法对测试集预测对应的值,即电影评分。三种模型得到的误差结果如表1所示。
表1三种模型误差对比
从表1中可以看到,Gradient Boosting 回归模型的评估
结果是最好的,模型预测准确率达到91.16%,均方误差仅为0.5974,平均绝对误差为0.6268,明显优于另外两种模型。所
以本文选取Gradient Boosting 回归模型对实验电影数据进行电影评分预测。预测结果如表2所示。可以看到五部电影的预测评分和实际评分之间的误差很小,预测结果准确度较
高。
表2部分电影评分预测结果
五、结论与思考
本文利用八爪鱼采集器对豆瓣Top 250电影榜单中的信息进行爬取,并利用Python 对数据进行清洗、探索性分析和评分预测。结果表明,在豆瓣Top 250电影榜单中,制片地区为美国的影片占大多数,电影类型大部分为爱情类。对于电影评分进行分析,有93.2%的电影评分集中在8.5~9.3分,从类型上来看,大部分类型的电影评分均值在8.9分左右。
对于电影评分预测模型的构建,本文采用了随机森林、回归树和梯度提升三种算法,模型评估结果表明预测效果最好的是Gradient Boosting 回归模型,准确率达到91.16%。利用此模型对五部影片进行评分预测,预测评分和实际评分很接近。
虽然本文构建了三种电影评分预测模型,但是在预测变量的选择上没有考虑导演、演员和电影类型这三个因素,所以需要进一步研究将此类特征信息量化的方法,再将其纳入预测模型,应该会对提升模型的精确度有所帮助。
参考文献:
[1]闫艺馨,郭威志,李振强.基于豆瓣榜单电影大数据分析中国电影未来的合理走向———以近六年中国电影为案例[J].中国民族博览,2018(04):245-246.
[2]朱海澎.中西方观众电影接受对比分析———基于豆瓣网及IMDb Top250电影[J].新媒体研究,2018,4(23):140-143.
[3]徐勤亚,蔡继鹏,王星.基于Python 的影片数据分析[J].信息技术与信息化,2019(08):113-115.
[4]席稼玮.基于数据挖掘的电影票房分析[J].通讯世界,2019,26(03):317-319.
[5]刘明昌.豆瓣网站电影在线评分的混合预测模型研究[D].保定:河北大学,2017.
[6]陆君之.基于随机森林回归算法的电影评分预测模型[J].江苏通信,2018,34(01):75-78.
经济纵横
13