基于贝叶斯网络的电影评级预测童燕翔(南京航空航天大学计算机科学与技术学院,南京210016)摘要在日常生活中,人们经常去看电影.但不同的人喜欢的类型不一样,有人喜欢战争片,有人喜欢艺术片,有人喜欢爱情片等等.本论文利用贝叶斯网络算法预测某个用户对某个电影的评级分数。关键字推荐系统,贝叶斯网络,电影评级中图法分类号TP391文献标识码AMovieRatingPredictionBasedonBayesianNetworkYanxiangTongComputerScienceandTechnology,NanjingUniversityofAeronauticsandAstronautics,Nanjing,ChinaAbstractIndailylife,peopleoftengotoseethemovies,butdifferentpeoplelikedifferenttypes,somepeoplelikewatchingwarmovies,somepeoplelikeartfilms,somelikeromance,etc.Inthispaper,wemaypredicttheratingforamovieofacertainuserbyusingBayesiannetworkalgorithm.Keywordsrecommendationsystem,Bayesiannetwork,movierating1引言在挑选电影的时候,我们经常会感到不知所措。很多时候,我们都会参考专业电影影评网站给的评分来选择电影,如豆瓣,通过对电影的评分,类型等的搜索,这些网站就会给你推荐一些你可能会喜欢的电影。本论文就是选取了网络中的电影数据,通过贝叶斯网络达到预测电影评级分数的目的,从而更好的为观影人推荐适合的电影。1.1数据集683个用户,1682部电影,数据集共有100,000个评级信息,评级分为1-5(颗星);每个用户有5个属性,每部电影有24个属性。(用户文件u.user,电影文件u.item)。训练集格式(90000):userid|itemid|rating,其中userid范围为1到943,itemid范围为1到1682,评价以星等(1至5)來表示。测试集格式(10000):userid|itemid,其中userid范围为1到943,itemid范围为1到1682,没有评价用户属性:userid|age|gender|occupation|zipcode电影属性:movieid|movietitle|releasedate|videoreleasedate|IMDbURL|unknown|Action|Adventure|Animation|Children's|Comedy|Crime|Documentary|Drama|Fantasy|Film-Noir|Horror|Musical|Mystery|Romance|Sci-Fi|Thriller|War|Western|2数据预处理我们运用Weka做预测分析,而提供的数据集不符合数据格式要求,所有我们必须对原数据做预处理。步骤如下:1)将源数据集user,item,train,test用UtraEdit打开,搜索所有的”|”和“||”,将它们替换为“,”,然后将文件另存为CVS文件。2)将四个CVS文件另存为XLS文件,利用网站程序将四个文件XLS文件上传到SQLSever2005数据库中。3)利用数据库的查询语句,将train、test的id与另外两个的文件相互连接生成新的两个train和test的XLS文件。然后在把生成的train_combine.xls和test_combine.xls另存为CSV文件。4)然后利用Weka将CVS文件转化为ARFF文件,除去不需要的属性,并将数据集的属性离散化。5)将train_combine.cvs和test_combine.cvs合并为data.cvs,将它导入到Weka中转为ARFF文件,将该文件的文件头分别替换train_combine.cvs和test_combine.cvs。这样做事保证训练集和测试集的属性设置保持一致。最后选用的属性集如下表所示:属性名Weka类型userIdnominalitemIdnominalAgeNominalGendernominalOccupationnominalunknownnominalActionnominalAdventurenominalAnimationnominalChildrennominalComedynominalCrimenominalDocumentarynominalDramanominalFantasynominalFilm-NoirnominalHorrornominalMusicalnominalMysterynominalRomancenominalSci-FinominalThrillernominalWarnominalWesternnominal3贝叶斯网络分类器贝叶斯网络是一个带有概率注释的有向无环图,图中的每一个结点均表示一个随机变量,图中两结点间若存在着一条弧,则表示这两结点相对应的随机变量是概率相依的,反之则说明这两个随机变量是条件独立的。网络中任意一个结点X均有一个相应的条件概率表(ConditionalProbabilityTable,CPT),用以表示结点X在其父结点取各可能值时的条件概率。若结点X无父结点,则X的CPT为其先验概率分布。贝叶斯网络的结构及各结点的CPT定义了网络中各变量的概率分布。贝叶斯分类器是用于分类的贝叶斯网络。该网络中应包含类结点C,其中C的取值来自于类集合(c1,c2,...,cm),还包含一组结点X=(X1,X2,...,Xn),表示用于分类的特征。对于贝叶斯网络分类器,若某一待分类的样本D,其分类特征值为x=(x1,x2,...,xn),则样本D属于类别ci的概率P(C=ci|X1=x1,X2=x2,...,Xn=xn),(i=1,2,...,m)应满足下式:P(C=ci|X=x)=Max{P(C=c1|X=x),P(C=c2|X=x),...,P(C=cm|X=x)}而由贝叶斯公式:P(C=ci|X=x)=P(X=x|C=ci)*P(C=ci)/P(X=x)其中,P(C=ci)可由领域专家的经验得到,而P(X=x|C=ci)和P(X=x)的计算则较困难。应用贝叶斯网络分类器进行分类主要分成两阶段。第一阶段是贝叶斯网络分类器的学习,即从样本数据中构造分类器,包括结构学习和CPT学习;第二阶段是贝叶斯网络分类器的推理,即计算类结点的条件概率,对分类数据进行分类。这两个阶段的时间复杂性均取决于特征值间的依赖程度,甚至可以是NP完全问题,因而在实际应用中,往往需要对贝叶斯网络分类器进行简化。根据对特征值间不同关联程度的假设,可以得出各种贝叶斯分类器,NaiveBayes、TAN、BAN、GBN就是其中较典型、研究较深入的贝叶斯分类器。4试验过程和结果4.1数据上传和查询连接利用网站,通过网页操作将四个数据集导入到数据库中,如下图1所示:在本地选择所要上传的XLS文件,然后点击“upload”实现上传,“Delete”可以轻松实现将刚才上传的表格进行删除,从而减少对数据库的操作。图1数据集上传系统如图2所示为将数据集导入到数据库中形成四张相应的表,对这四个表进行查询就可以实现将所有需要的属性依据train文件和test文件的userId、itemId相链接。查询语句如下:--trainresultselecttrain.userId,train.itemId,rating,age,gender,occupation,zipCode,movieTitle,unknown,action,adventure,animation,childer,comedy,crime,documentary,drama,fantasy,filmNoir,horror,musical,mystery,romance,sciFi,thriller,war,westernfromtrainleftjoinusersontrain.userId=users.userIdleftjoinitemontrain.itemId=item.movieId--testresultselecttest.userId,test.itemId,age,gender,occupation,zipCode,movieTitle,unknown,action,adventure,animation,childer,comedy,crime,documentary,drama,fantasy,filmNoir,horror,musical,mystery,romance,sciFi,thriller,war,westernfromtestleftjoinusersontest.userId=users.userIdleftjoinitemontest.itemId=item.movieId查询结果见图2。图2在数据里建立表格图3查询实现表格链接4.2利用weka进行预测电影有五个评分等级,在Weka中,我们把电影的rating分成5类,这样预测电影评分等级就转化为了电影评评分分类预测。然后利用Weka中贝叶斯网络分类器进行分类。因为测试数据集并没有给出rating的值,所有我们当其为缺省值,一般结果显示时为“?”,也因此我们无法得出MSE5总结本文主要利用贝叶斯网络对所有的属性进行建模,从而预测测试集的电影评分等级。因为没有原分类结果进行比较,所以无法比较出该方法的可靠性。在进行实验的时候也发现其他的可利用的方法。Bayesian网络技术利用训练集创建相应的模型,模型用决策树表示,节点和边表示用户信息,训练得到的模型非常小,所以对模型的应用非常快,这种方法适合于用户的兴趣爱好变化比较场合。聚类技术具有相似兴趣爱好的用户分配到相同的簇中,聚类产生之后,根据簇中其他用户对商品的评价预测目标用户对商品的评价,由于聚类过程离线进行,所以在线的推荐算法产生推荐的速度比较快。关联规则技术在零售业得到了广泛的应用,关联规则挖掘可以发现不同商品在销售过程中的相关性,基于关联规则的推荐算法根据生成的关联规则模型和用户当前的购买行为产生推荐,关联规则模型的生成可以离线进行,因此可以保证有效地推荐系统的实时性要求。基于以上的了解,本文所提出的方法还有待改进和优化。致谢非常感谢在试验的过程中同学们给予的帮助。参考文献[1]BreeseJ,HechermanD,KadieC.Empiricalanalysisofpredictivealgorithmsforcollaborativefiltering.In:Proceedingsofthe14thConferenceonUncertaintyinArtificialIntelligence(UAI’98).1998.43-52.[2]GoldbergD,NicholsD,OkiBM,TerryD.Usingcollaborativefilteringtoweaveaninformationtapestry.CommunicationoftheACM.1992.35(12):61-70.[3]ResnickP,IacovouN,SuchakM,BergstromP,RiedlJ.Grouplens:Anopenarchitectureforcollaborativefilteringofnetnews.In:ProceedingoftheACMCSCW’94Conferenceoncomputer-SupportedCooperativeWork1994.175-186.[4]ShardanandU,MaesP.Socialinformationfiltering:Algorithmsforautomating“Word