APP下载

基于随机森林理论的电影评分预测

2021-02-28刘林慧王慧

现代信息科技 2021年16期
关键词:随机森林

刘林慧 王慧

摘  要:电影评分是电影质量的一个直观反映,对未上映的电影评分进行预测是非常重要的。文章在电影本身属性的基础上,定义所有特征量化方式,同时利用电影相似度新增相似电影评分属性,结果表明,加入该因子之后,模型的均方误差降低了35.3%。在此基础上,使用选择性随机森林优化算法对电影评分进行预测,模型的均方误差为0.102 5,预测较准确。

关键词:相似电影评分;特征量化;随机森林;电影评分预测

中图分类号:TP391.4                    文献标识码:A文章编号:2096-4706(2021)16-0083-04

Prediction of Film Score Based on Random Forest Theory

LIU Linhui, WANG Hui

(College of Modern Manufacturing Engineering, Heilongjiang University of Technology, Jixi  158100, China)

Abstract: Film score is an intuitive reflection of film quality. It is very important to predict the score of unreleased films. Based on the attributes of the film itself, this paper defines all feature quantization methods, at the same time, the film similarity is used to add the scoring attribute of similar films. The results show that after adding this factor, the mean square error of the model is reduced by 35.3%. On this basis, the selective random forest optimization algorithm is used to predict the film score, the mean square error of the model is 0.102 5, which is more accurate.

Keywords: similar film score; feature quantification; random forest; prediction of film score

0  引  言

随着信息时代的大踏步发展,人们生活方式的大幅度变革,电影成了人们休闲娱乐的重要方式之一。在电影领域,不管是哪种片型,都包含着一个国家、一个民族、一個社会的交往方式,反映了一个特定时期的人文精神。越来越多的人会在休闲之余选择去观看电影,渴望通过电影获取这个时代的重要信息,渴望通过电影释放自己的精神压力。电影是拍给观众看的,没有观众的电影是不存在的,因此电影要适应观众的需要。

近年来,越来越多的电影在大众视野中出现,但是电影的质量却是参差不齐。电影评分是电影质量最直观的反映,它成为观众选择电影消费的一个重要依据。预测电影评分问题[1,2]对于电影领域未来的发展和地区经济发展非常重要,因此对即将上映的电影评分进行预测是非常有必要的。

1  数据处理

本文所使用的实验数据来自豆瓣网站[3],详见https://movie.douban.com/。共包含8个属性,15 000条电影数据。电影本身属性包括:电影名称、类型、时长、剧情简介、导演、编剧、主演、评分,数据形式如表1所示。

1.1  相似电影评分属性

本部分新增相似电影评分属性,根据电影本身特征,导演、编剧、主演、剧情简介、类型,设置权重,计算电影之间相似度,每部电影寻找与它相似度最高的10部相似电影,取10部电影评分的平均值作为新增属性值。

1.1.1  特征到向量的转化

1.1.1.1  导演、编剧、演员、类型

从表1可知导演、编剧、演员和类型都是字符型数据,处理方式相同。将每部电影的导演、编剧、演员、类型、剧情简介转化为0,1向量,实现字符型数据到向量转化的算法如算法1所示:

文本特征到向量的转化

输入:电影文本特征

输出:每个电影文本特征对应的二进制向量

过程:

1.将所有电影的文本信息存入新列表中

2.遍历新列表

3. 遍历每个电影文本信息

4.   如果该电影信息在列表中出现,列表对应位置赋值为1,其他位置赋值为0

1.1.1.2  剧情简介

剧情是对电影的简单描述,观众可以通过剧情简介了解电影的大概内容。寻找相似电影时,剧情属性是非常重要的。判断两个电影是否相似,可以通过电影剧情中的关键字来判断。

电影剧情中的关键词通过关键词提取得到,所谓关键词提取,就是从一段给定的文本中自动抽取出能够反映文本信息的特征词。本文使用TextRank关键词提取方法,TextRank算法是可以脱离语料库的背景,仅对单篇文档进行分析就可以提取出该文档的关键词的一种提取方法[4]。

以电影《银河补习班》为例。使用TextRank算法提取到的关键词如表2所示。

提取关键词之后,将关键词转化为二进制向量,同样应用算法1实现。

1.1.2  电影相似度计算

1.1.2.1  余弦相似度

余弦相似度是一种相似度的度量标准,用向量之间的夹角来计算相似度。

已知两个向量α,β,两向量之间的夹角用θ表示。余弦相似度公式为:

(1)

以类型为例,利用上述公式计算两电影的类型相似度。假设电影1的类型向量为α,电影2的类型向量为β。

α=(1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)   (2)

β=(1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)   (3)

则两部电影类型的相似度为:

(4)

1.1.2.2  特征权重相似度

定义:在余弦相似度的基础上,乘上相应的特征的权重,得到特征权重相似度。

本论文为属性设定权重值如表3所示。

(5)

1.1.3  相似电影评分属性值计算

得到的基于电影信息的相似电影评分属性值计算方法如算法2所示:

def binary(attribute_list,newList):# 将所有文本特征转化为二进制向量

binaryList = []

for attribute in newList:

if attribute in attribute _list:

binaryList.append(1)

else:

binaryList.append(0)

return binaryList

def Similarity(movie_name):#求两个电影之间的特征权重相似度

A_Similarity List = []

for index, movie in f.iterrows():   #f文件为包含二进制向量的数据

a = f.iloc[movie_name]

b = f.iloc[movie[‘name’]

attribute_Distance = similar(a[‘attribute_vec’], b[attribute_vec’])

A_Similarity=0.5*director_Distance+0.5*scriptwriter_Distance+0.5*actor_Distance+ type_Distance+1.5*words_Distance   #特征权重相似度公式

A_Similarity List.append(A_Similarity)

returnA_SimilarityList

def Subject(movie_name):

#取特征權重相似度最大的前10位电影,输出电影的相似电影评分属性值

A_SimilarityList=Similarity(movie_name)

A_Similarity_ten=A_SimilarityList[0:10]

subject=sum(A_Similarity_ten)/len(A_Similarity_ten)

return subject

1.2  电影属性处理

本部分给出第一导演、第一编剧、第一、二主演、时长、类型等属性的定义量化特征的方式:

(1)第一导演:

(6)

其中Ri表示该部电影的第一导演导过的第i部电影的评分,n表示该导演导过的全部电影的数目。

(2)第一编剧:

(7)

其中Rj表示该部电影的第一编剧编写过的第j部电影的评分,n表示该编剧参与过的全部电影的数目。

(3)第一、二主演:

,α=0.6,β=0.4             (8)

其中第一主演与第二主演的计算方式相同。Bi表示主演作为第一主演出演的第i部电影的评分,Cj表示主演不作为第一主演出演的第j部电影的评分,n为主演参演过的全部电影数。α和β为权重。如果一位主演只作为第一主演,或者从未作为第一主演,则取他作为第一主演所演过的电影的平均分或者作为其他主演所演过的电影的平均分。

(4)时长。对于时长这一属性,在数据预处理过程中保留原数值,不对其进行处理。

(5)类型:

(9)

其中Wi、Wj、Wk分别代表各个类型全部电影的平均分。

2  新加入特征的有效性检验

将数据集进行拆分,75%作为训练集数据,25%作为测试集数据。

分别计算100棵树、300棵树、500棵树以及1 000棵树在两种情况下的得到的随机森林的均方误差。两种情况分别是原始六个因子和加入相似电影评分因子。图1是两种情况下随机森林均方误差值的对比图,横坐标表示森林的规模,纵坐标表示均方误差。图2是在使用随机森林预测过程中得到的变量重要性情况,用条形图进行展示。纵坐标表示各属性所占的权重,横坐标表示各属性名称。

图1表明,一方面,加入相似电影评分因子能减小模型的均方误差。图2可以看出,对电影评分影响最大的特征是相似电影评分因子,虽然其他因子对评分的影响没有相似电影评分因子影响大,但是依然对预测结果做出贡献。因此从实验结果可以得出结论,新加入的因子有效。

3  基于选择性随机森林的电影评分预测

3.1  算法理论基础

3.1.1  随机森林

随机森林[5-7]是一种集成学习算法,随机森林的基学习器是决策树,每棵决策树没有关联。随机森林相对于决策树来说,模型有更低的泛化误差。在回归问题中,所有决策树输出结果的平均值就是随机森林最终的输出值。

3.1.2  選择性随机森林优化算法

选择性集成[8]是指从所有现有的基学习器中,剔除对结果作用不大或者对结果起反作用的基学习器,然后基于某种准则选择出一部分性能好的学习器作为一个新的集成,通常,使用新的集成模型能够使分类或者回归的结果更准确。

随机森林的泛化误差与决策树的平均泛化误差和决策树之间的平均相关性有关[5]。对随机森林子集进行优化,就是在保证森林规模的前提下,考虑单棵树的平均泛化误差、树与树之间的相关关系和集成的规模三者关系,让随机森林的泛化误差更加接近极限值[9]。

3.2  基于选择性随机森林的电影评分预测

在本部分中使用选择性随机森林优化算法对电影评分进行预测。将随机森林的规模设为1 000,迭代次数为设为100,种群个数设为50,最终得到的实验结果如表4所示。

优化后森林的规模从原来1 000棵树压缩到了498棵树,压缩率达到了50.2%,且有更低的均方误差为0.102 5。由于实验所用的数据集较大,无法完全展示。因此本文采用随机抽样的方式,在样本中抽取5部电影,并把5部电影的预测结果进行输出,电影评分的真实值和预测值如表5所示。

4  结  论

本文选择编剧、演员、导演、类型、剧情简介、时长等六个属性进行电影评分预测。并根据其中的编剧、演员、导演、类型、剧情简介五个特征新建“相似电影评分”属性,使用随机森林算法优化算法进行预测,模型的均方误差达到0.102 5,预测较准确。

本文考虑的影响未上映电影评分的因素有限,在后续的工作中会结合本次试验的属性重要性程度再考虑加入更多的因素,给出更精准的预测。

参考文献:

[1] 刘明昌.豆瓣网站电影在线评分的混合预测模型研究 [D].保定:河北大学,2017.

[2] 张红丽,刘济郢,杨斯楠,等.基于网络用户评论的评分预测模型研究 [J].数据分析与知识发现,2017,1(8):48-58.

[3] 豆瓣.豆瓣电影 [EB/OL].[2021-05-04].https://movie.douban.com/.

[4] 涂铭,刘祥,刘树春.Python自然语言处理实战:核心技术与算法 [M].北京:机械工业出版社,2018:88-91.

[5] BREIMAN. Random Forests [J].Machine Learning,2001,45(1):5-32.

[6] 周志华.机器学习 [M].北京:清华大学出版社,2016:171-181.

[7] 李航.统计学习方法 [M].北京:清华大学出版社,2012:67-72.

[8] ZHOU Z H,WU J X,TANG W. Ensembling neural networks:Many could be better than all [J].Artificial Intelligence,2002,137 (1):239-263.

[9] 姚明煌. 随机森林及其在遥感图像分类中的应用 [D]. 厦门:华侨大学,2014.

作者简介:刘林慧(1996.02—),女,汉族,黑龙江鸡东人,助教,硕士研究生,主要研究方向:数据分析;王慧(1985.10—),女,汉族,黑龙江鸡西人,讲师,硕士研究生,主要研究方向:数学机械化。

猜你喜欢

随机森林
随机森林算法在中药指纹图谱中的应用:以不同品牌夏桑菊颗粒指纹图谱分析为例
基于随机森林的登革热时空扩散影响因子等级体系挖掘
基于随机森林的HTTP异常检测
个人信用评分模型比较数据挖掘分析
随机森林在棉蚜虫害等级预测中的应用
基于二次随机森林的不平衡数据分类算法
拱坝变形监测预报的随机森林模型及应用
基于随机森林算法的飞机发动机故障诊断方法的研究
基于奇异熵和随机森林的人脸识别
基于随机森林算法的B2B客户分级系统的设计