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