譚家柱
(廣西師范大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,桂林 541006)
IMDB(Internet movie database),是一個(gè)關(guān)于電影演員、電影、電視節(jié)目、電視明星和電影制作的在線數(shù)據(jù)庫(kù),IMDB的數(shù)據(jù)資料中包括了影片的眾多信息,如演員、片長(zhǎng)、內(nèi)容介紹、分級(jí)、評(píng)論等,對(duì)于電影評(píng)分門(mén)目前使用最多的就是IMDB評(píng)分。對(duì)于喜歡看電影的朋友,去IMDB上尋找好電影是很可取的。IMDB評(píng)分核心是基于貝葉斯統(tǒng)計(jì),但本文是基于數(shù)據(jù)挖掘中的隨機(jī)森林算法進(jìn)行探索研究。
對(duì)于普通人群來(lái)說(shuō),在經(jīng)歷過(guò)白天上班的疲憊后,找一部自己感興趣且有意義的電影來(lái)放松自我是很舒服的一件事情。
本研究的目的是通過(guò)已有的真實(shí)電影數(shù)據(jù)集,挖掘出影響電影評(píng)分的關(guān)鍵因素,并構(gòu)建相關(guān)預(yù)測(cè)模型來(lái)計(jì)算已知測(cè)試集中的分類情況,為電影推薦系統(tǒng)給出建議。
本研究針對(duì)“數(shù)據(jù)世界”官網(wǎng)給出的數(shù)據(jù)集,其中包括影片出版時(shí)間、影片類型、出版地、導(dǎo)演及主演個(gè)人信息等28個(gè)變量列,利用數(shù)據(jù)挖掘中的隨機(jī)森林算法進(jìn)行電影評(píng)分預(yù)測(cè)模型構(gòu)建,通過(guò)可視化結(jié)果分析,找出影響電影評(píng)分的關(guān)鍵因素,并為電影推薦系統(tǒng)給出建議。
(1)對(duì)數(shù)據(jù)集進(jìn)行初步分析,初步判斷影響電影評(píng)分的變量。
(2)對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,再分析。
(3)分割數(shù)據(jù)集。
(4)建立電影評(píng)分分類模型。
(5)利用可視化效果分析變量的重要性。
(6)總結(jié)影響電影評(píng)分的因素,并為電影推薦系統(tǒng)給出可行性建議。
表1 數(shù)據(jù)說(shuō)明
在Rstudio中根據(jù)觀察樣本數(shù)據(jù)后,通過(guò)檢驗(yàn)數(shù)據(jù)集的數(shù)據(jù)質(zhì)量、繪制圖表等手段,對(duì)電影數(shù)據(jù)集的結(jié)構(gòu)和規(guī)律進(jìn)行分析。包括缺失值處理、屬性規(guī)約、數(shù)據(jù)冗余處理,等。
對(duì)強(qiáng)影響變量進(jìn)行進(jìn)一步分析。
(1)“imdb_score”與“genres”。新建只含“imdb_score”與“genres”變量數(shù)據(jù)框,計(jì)算不同體裁電影平均得分,結(jié)果如圖1所示。
圖1 平均得分
由圖1可知,盡管電影體裁不同,但電影平均得分均在6~8分(總分10分制)。所以,變量“genres”對(duì)本研究電影得分預(yù)測(cè)無(wú)太大影響,故刪除。
(2)對(duì)“imdb_score”與“aspect_ratio”。對(duì)“aspect_ratio”進(jìn)行頻次統(tǒng)計(jì)如表2所示。
表2 頻次統(tǒng)計(jì)
由上可知,“aspect_ratio”集中在1.85和2.35,所以我們可以分別計(jì)算當(dāng)aspect_ratio=1.85、aspect_ratio=2.35、aspect_ratio!=1.85&2.35時(shí),“imdb_score”的平均值,分別為6.36355,6.509517,6.694093。從以上輸出結(jié)果可知,變量“aspect_ratio”對(duì)本文電影得分預(yù)測(cè)無(wú)太大影響,故刪除。
(3)統(tǒng)計(jì)變量“country”頻次如表3所示。
表3 頻次統(tǒng)計(jì)
(4)繪制“title_year”時(shí)間序列如圖2。
圖2 時(shí)序分布
觀察條形統(tǒng)計(jì)圖可知,此數(shù)據(jù)集電影上映年份大概在1975年后迅速增加。所以,截取1975年及以后的電影數(shù)據(jù)作為新的數(shù)據(jù)集。
(5)繪制利潤(rùn)前20名電影“budget”與回報(bào)率關(guān)系如圖3。
圖3 利潤(rùn)
觀察上述擬合曲線可知,當(dāng)成本逐漸增加時(shí),利潤(rùn)率趨于平穩(wěn)。
(6)繪制利潤(rùn)前20名電影“gross”與“im?db_score”二維圖如圖4。
圖4 二維分布
觀察上圖可知,大多數(shù)imdb評(píng)分高的電影票房收入大部分不出眾。
(7)繪制“movie_fb_likes”與“imdb_score”關(guān)系圖,以“content_rating”分類如圖5所示。
圖5 分類
由上圖可知,“movie_fb_likes”越多,imdb評(píng)分越高,變量比較重要。
(8)刪 除 變 量“profit”、“return_on_invest?ment_perc”
(9)將變量“imdb_score”劃分為5類:(0,2)、(2,4)、(4,6)、(6,8)、(8,10)
(1)用兩個(gè)指標(biāo)變量樣本間的pearson相關(guān)系數(shù)來(lái)估計(jì)2個(gè)指標(biāo)變量總體間的pearson相關(guān)系數(shù)[1],其計(jì)算公式為:
(2)繪制剩余變量的二維pearson相關(guān)系數(shù)圖如圖6所示。
圖6 二維相關(guān)系數(shù)
由圖6可知,某些變量之間相關(guān)程度很高(pearson系數(shù)超過(guò)0.75),會(huì)造成高度線性相關(guān),影響模型預(yù)測(cè)。
(3)刪除pearson系數(shù)表中高度相關(guān)變量。
(4)重新繪制剩余變量的二維pearson相關(guān)系數(shù)如圖7所示。
圖7 二維相關(guān)系數(shù)
由上圖可知,某些變量之間相關(guān)程度很高(pearson系數(shù)均未超0.7),變量相關(guān)性良好。
(5)剩余指標(biāo)變量15個(gè),如表4所示。
表4 剩余指標(biāo)變量
(1)隨機(jī)森林于2001年由Leo Breiman提出,它首先通過(guò)自助法(bootstrap)采樣技術(shù),從大小為N的原始訓(xùn)練樣本集中隨機(jī)有放回并重復(fù)抽取k個(gè)樣本,生成新的訓(xùn)練樣本集。其次根據(jù)自助樣本集生成k個(gè)分類樹(shù)組成隨機(jī)森林,新數(shù)據(jù)的分類結(jié)果視分類樹(shù)投票分?jǐn)?shù)而定。其實(shí)質(zhì)是對(duì)決策樹(shù)算法的一種改進(jìn),將多顆決策樹(shù)合并在一起,每棵樹(shù)的建立依賴于一個(gè)獨(dú)立抽取的樣品,而且森林中的每棵樹(shù)都具有相同的分布,分類誤差將取決于每一棵樹(shù)的分類能力和它們之間的相關(guān)性。
特征選擇采用隨機(jī)的方法分裂每一個(gè)節(jié)點(diǎn),然后比較不同情況下產(chǎn)生的誤差。通過(guò)檢測(cè)到的內(nèi)在估計(jì)誤差、分類能力和相關(guān)性決定選擇特征的數(shù)目(特征選取數(shù)目一般為最終指標(biāo)變量數(shù)進(jìn)行開(kāi)方)。單棵樹(shù)的分類能力可能很小,但在隨機(jī)產(chǎn)生大量的決策樹(shù)后,一個(gè)測(cè)試樣品可以通過(guò)每一棵樹(shù)的分類結(jié)果經(jīng)統(tǒng)計(jì)后選擇最可能的分類[2]。
(1)設(shè)原始訓(xùn)練集為N,應(yīng)用bootstrap法有放回地隨機(jī)抽取k個(gè)新的自助樣本集,并由此構(gòu)建k棵分類樹(shù),每次未被抽到的樣本組成了k個(gè)袋外數(shù)據(jù)。
(2)設(shè)有X個(gè)變量,首先在每一棵樹(shù)的每個(gè)節(jié)點(diǎn)處隨機(jī)抽取m個(gè)變量,然后在m中選擇一個(gè)最具有分類能力的變量,變量分類的閾值將通過(guò)檢查每一個(gè)分類點(diǎn)確定。
(3)每棵樹(shù)最大限度地生長(zhǎng),不做修剪。
(4)將生成的多棵分類樹(shù)組成隨機(jī)森林,用隨機(jī)森林分類器對(duì)新的數(shù)據(jù)進(jìn)行判別與分類,分類結(jié)果按樹(shù)分類器的投票多少而定。
流程圖[5]如圖8所示。
圖8 流程分布
(1)由理論知識(shí)證明可知,當(dāng)樹(shù)足夠大時(shí),隨機(jī)森林的泛化誤差上限收斂于:
其中是樹(shù)之間的平均相關(guān)系數(shù),s是度量樹(shù)型分類器的“強(qiáng)度”的量。一組分類器的強(qiáng)度是指分類器的平均性能,而性能以分類器的余量M用概率算法度量:
其中X≠Y,是根據(jù)隨機(jī)向量θ構(gòu)建的分類器對(duì)X做出的預(yù)測(cè)類,余量M越大,分類器正確預(yù)測(cè)給定的樣本X的可能性就越大[5]。
(2)OOB(袋外數(shù)據(jù))。在隨機(jī)森林bagging法中可以發(fā)現(xiàn)bootstrap每次約有1/3的樣本不會(huì)出現(xiàn)在bootstrap所采集的樣本集合中,故沒(méi)有參加決策樹(shù)的建立,這些數(shù)據(jù)稱為袋外數(shù)據(jù)OOB,用于取代測(cè)試集誤差估計(jì)方法,可用于模型的驗(yàn)證。
(3)混淆矩陣?;煜仃囀怯脕?lái)評(píng)價(jià)分類器性能的一種特殊矩陣[5],其形式如表5。
表5 混淆矩陣
其中精度和召回率是兩個(gè)廣泛使用的度量,用于成功預(yù)測(cè)一個(gè)類比預(yù)測(cè)其他類更加重要的應(yīng)用。
(1)BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程由信號(hào)的正向傳播與誤差的反向傳播兩個(gè)過(guò)程組成。
(2)正向傳播時(shí),輸入樣本從輸入層傳入,經(jīng)隱層逐層處理后,傳向輸出層。若輸出層的實(shí)際輸出與期望輸出不符,則轉(zhuǎn)向誤差的反向傳播階段。
(3)誤差的反向傳播是將輸出誤差以某種形式通過(guò)隱層向輸入層逐層反傳,并將誤差分?jǐn)偨o各層的所有單元,從而獲得各層單元的誤差信號(hào),此誤差信號(hào)即作為修正各單元權(quán)值的依據(jù)。
(4)BP網(wǎng)絡(luò)由輸入層、輸出層和隱層組成,N為輸入層,P為輸出層,Q為隱層。BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖9[6]所示。
圖9 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
調(diào)用randomForest函數(shù)包進(jìn)行訓(xùn)練調(diào)參,誤差估計(jì)如圖10所示。
圖10 誤差估計(jì)
(1)訓(xùn)練集以75%和25%比例切割,mt ry=4,輸出結(jié)果如表6所示。
表6 輸出結(jié)果
(2)訓(xùn)練集以80%和20%比例切割,mtr y=4,輸出結(jié)果如表7所示。
表7 輸出結(jié)果
(3)訓(xùn)練集以70%和30%比例切割,mtr y=4,輸出結(jié)果如表8所示。
表8 輸出結(jié)果
綜合上述可知,當(dāng)訓(xùn)練集以80%和20%比例分割,mtr y=4、ntree=1500時(shí),模型分類預(yù)測(cè)準(zhǔn)確率較好,為81.82%。
根據(jù)“MeanDecreaseGini”來(lái)度量各變量重要性,可視化結(jié)果如圖11所示。
從圖11可以看出,指標(biāo)變量“conten_rat?ing”、“facenumber_in_poster”、“country”重要性程度不高,指標(biāo)變量“num_voted_users”、“dura?tion”、“budget”等重要性程度較高。這一結(jié)果也符合猜想。
圖11 可視化
調(diào)用nnet函數(shù)包對(duì)數(shù)據(jù)集按不同比例切割后進(jìn)行建模調(diào)參,調(diào)參結(jié)果如表9所示。
表9 調(diào)參結(jié)果
由測(cè)試結(jié)果可知,當(dāng)數(shù)據(jù)集切割比例為8:2時(shí),分類準(zhǔn)確率為74.47%,較高。
(1)Friedman檢驗(yàn)原理。假定用四個(gè)數(shù)據(jù)集對(duì)算法進(jìn)行比較。先使用留出法或者交叉驗(yàn)證法得到每個(gè)算法在每個(gè)數(shù)據(jù)集上的測(cè)試結(jié)果,然后在每個(gè)數(shù)據(jù)集上根據(jù)性能好壞排序,并賦序值1,2,…;若算法性能相同則平分序值,繼而得到每個(gè)算法的平均序值,算法比較序值參見(jiàn)文獻(xiàn)[7]。
(2)算法性能檢驗(yàn)標(biāo)準(zhǔn)。①根據(jù)Friedman檢驗(yàn),如果上述四個(gè)算法性能都相同,則它們的平均序值相同。②如若不同,則引入以下通用變量進(jìn)行判別(k為算法個(gè)數(shù),N為數(shù)據(jù)集個(gè)數(shù)):
其中,
(3)當(dāng)置信水平α=0.05時(shí),F(xiàn)檢驗(yàn)常用臨界值參見(jiàn)文獻(xiàn)[8]。
(4)采用四折交叉驗(yàn)證,計(jì)算可得:τF=1,明顯小于臨界值F(1,3)=10.13,故接受原假設(shè)“所有算法的性能相同”。
(5)綜合比較上述四折檢驗(yàn)結(jié)果,用隨機(jī)森林分類模型進(jìn)行評(píng)分預(yù)測(cè)準(zhǔn)確度較好。
在新電影數(shù)據(jù)集中利用隨機(jī)無(wú)放回抽樣抽取15部電影進(jìn)行評(píng)分預(yù)測(cè)如表10所示。
表10 預(yù)測(cè)結(jié)果
分析表10可知,電影評(píng)分預(yù)測(cè)效果較好。
(1)隨機(jī)森林在運(yùn)算量沒(méi)有顯著提高的前提下提高了預(yù)測(cè)精度。
(2)隨機(jī)森林算法魯棒性好,對(duì)于離散數(shù)據(jù)點(diǎn)相對(duì)而言不敏感,由于電影信息多樣性,難免會(huì)有噪聲數(shù)據(jù),隨機(jī)森林算法能有效地避免這些輕微噪聲數(shù)據(jù)對(duì)最終模型的影響[3]。
(3)對(duì)于本研究所使用的數(shù)據(jù)集,變量之間可能會(huì)產(chǎn)生多元共線性。但隨機(jī)森林對(duì)多元共線性不敏感,結(jié)果對(duì)缺失數(shù)據(jù)和非平衡數(shù)據(jù)比較穩(wěn)健,被譽(yù)為當(dāng)前較好的算法之一[4]。
(4)本文將機(jī)器學(xué)習(xí)應(yīng)用在電影評(píng)分預(yù)測(cè)領(lǐng)域,通過(guò)票房、評(píng)論率等指標(biāo)變量作為影響電影評(píng)分的特征,對(duì)其進(jìn)行特征處理,能為大眾推薦電影提供有價(jià)值的參考,具有實(shí)際意義。