羅干 蔣煜楷 陳文婷 吳鎮(zhèn)州 施運(yùn)梅 宋瑩
摘要:該次研究利用從豆瓣電影和貓眼電影所爬取的電影基本信息數(shù)據(jù)和票房數(shù)據(jù)作為數(shù)據(jù)集。在進(jìn)行線性回歸訓(xùn)練之前,先將電影基本信息中的非數(shù)值型數(shù)據(jù)轉(zhuǎn)化為數(shù)值型數(shù)據(jù),然后利用Spark的機(jī)器學(xué)習(xí)庫(kù)構(gòu)建了票房預(yù)測(cè)模型。經(jīng)過(guò)實(shí)驗(yàn)分析得出,所構(gòu)建的預(yù)測(cè)模型在電影票房的預(yù)測(cè)上有較高的準(zhǔn)確率,可為電影票房分析提供有效的參考信息。
關(guān)鍵詞:線性回歸模型;電影票房預(yù)測(cè);評(píng)價(jià);Spark
中圖分類號(hào):TP312? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? 文章編號(hào):1009-3044(2019)01-0202-02
1 背景
隨著我國(guó)經(jīng)濟(jì)的發(fā)展,人民生活水平不斷提高,文化消費(fèi)有了爆發(fā)式的增長(zhǎng),中國(guó)的電影市場(chǎng)得以繁榮發(fā)展[1]。電影票房的預(yù)測(cè)也變得越來(lái)越有意義,在2013年的時(shí)候Google就發(fā)布了一篇名為《Quantifying,movie magic with Google Search》[2]的論文,里面提出了線性回歸的電影票房預(yù)測(cè)模型。之后也有很多相關(guān)的研究,也取得了一系列的成果,且大多數(shù)研究的票房預(yù)測(cè)模型都沒(méi)有對(duì)外公開(kāi)信息。此外所采用的數(shù)據(jù)沒(méi)有一個(gè)后續(xù)的更新,不能順應(yīng)電影發(fā)展腳步[3]。中國(guó)電影市場(chǎng)現(xiàn)在還有很多“現(xiàn)象級(jí)”[4]的電影,電影票房確實(shí)有很多不確定性。
該文將從豆瓣電影和貓眼電影上爬取的2011-2017年的院線電影信息,針對(duì)國(guó)內(nèi)電影市場(chǎng)的特點(diǎn),利用Spark的機(jī)器學(xué)習(xí)庫(kù)(MLlib)的線性回歸算法進(jìn)行電影最終票房的預(yù)測(cè)。
2 相關(guān)技術(shù)介紹
該節(jié)將對(duì)電影票房預(yù)測(cè)中使用的主要技術(shù)進(jìn)行簡(jiǎn)單介紹。
2.1 Spark計(jì)算引擎
Spark是在Hadoop MapReduce的基礎(chǔ)上提出的新一代大數(shù)據(jù)分析框架,擁有Hadoop MapReduce所具備的全部?jī)?yōu)點(diǎn),并且Spark是將計(jì)算結(jié)果直接存儲(chǔ)在內(nèi)存中,運(yùn)算效率更高[5],讓它非常適合機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘等需要迭代的算法。
Spark主要有三個(gè)特點(diǎn):1)高級(jí)API剝離了對(duì)集群本身的關(guān)注,讓開(kāi)發(fā)者可以專注于計(jì)算本身。 2)Spark支持交互式計(jì)算和復(fù)雜算法。3)Spark是通用引擎,可用它來(lái)完成SQL查詢、文本處理、機(jī)器學(xué)習(xí)等各種各樣的運(yùn)算。
2.2 機(jī)器學(xué)習(xí)庫(kù)MLlib
MLlib(Machine Learnig Lib)是構(gòu)建在 Spark 之上,一個(gè)專門用于大量數(shù)據(jù)處理的通用快速的引擎,是一個(gè)可以進(jìn)行擴(kuò)展的機(jī)器學(xué)習(xí)庫(kù),其目標(biāo)是使實(shí)際的機(jī)器學(xué)習(xí)變得可擴(kuò)展和容易。
MLlib 主要包含三個(gè)部分:1)底層基礎(chǔ):包括了Spark的運(yùn)行庫(kù)、矩陣庫(kù)和向量庫(kù);2)算法庫(kù):包含廣義線性模型、推薦系統(tǒng)、聚類、決策樹(shù)和評(píng)估的算法;3)實(shí)用程序:包括了測(cè)試數(shù)據(jù)的生成、外部數(shù)據(jù)的讀入等功能[6]。
2.3 多元線性回歸模型
線性回歸是利用數(shù)理統(tǒng)計(jì)中回歸分析,來(lái)確定兩種或兩種以上變量間相互依賴的定量關(guān)系的一種統(tǒng)計(jì)分析方法,運(yùn)用十分廣泛。
2.3.1 模型描述
多元線性回歸模型一般用公式(1)表示:
其中:Y為因變量;β1,β2,…,βn為回歸系數(shù);X1, X2,…,Xn為自變量;ε為隨機(jī)擾動(dòng)項(xiàng);n 為變量個(gè)數(shù)。
Y是受n個(gè)自變量影響,每個(gè)自變量的影響程度由回歸系數(shù)β決定,同時(shí)Y也受常量隨機(jī)擾動(dòng)項(xiàng)的影響。
2.3.2 評(píng)價(jià)方法
線性回歸常用的檢驗(yàn)方法有均方根誤差(RMSE, Root Mean Squared Error),擬合評(píng)價(jià)參數(shù)R?,回歸方程顯著性檢驗(yàn)F檢驗(yàn)[7]。
RMSE的計(jì)算方法如公式(2),該參數(shù)能很好地反映真實(shí)值與預(yù)測(cè)值之間的偏離程度。
其中,x為自變量,y表示因變量,n為自變量個(gè)數(shù)。
RMSE的取值范圍在[0,∞],值越小則預(yù)測(cè)效果越好。
擬合是指回歸直線對(duì)觀測(cè)值的擬合程度,擬合評(píng)價(jià)參數(shù) R?的取值范圍為[0,1],取值越接近1,說(shuō)明回歸直線對(duì)觀測(cè)值的擬合程度越好;反之,R?的值越小,說(shuō)明回歸直線對(duì)觀測(cè)值的擬合程度越差。
3 基于多元線性回歸的票房預(yù)測(cè)
該文從貓眼電影和豆瓣電影兩個(gè)網(wǎng)站上一共抓取了1642部電影的相關(guān)數(shù)據(jù),包括:電影票房、影片類型、導(dǎo)演、演員、上映日期、上映年份和電影評(píng)分。
在所采集的電影數(shù)據(jù)中,包括數(shù)值型和非數(shù)值型兩大類數(shù)據(jù)。其中影片類型、導(dǎo)演、演員和上映日期均為非數(shù)值型數(shù)據(jù);電影票房、電影評(píng)分、上映年份為數(shù)值型數(shù)據(jù)。由于非數(shù)值型數(shù)據(jù)無(wú)法用于線性回歸算法,所以需要對(duì)非數(shù)值型數(shù)據(jù)進(jìn)行轉(zhuǎn)化。
3.1 非數(shù)值型數(shù)據(jù)的轉(zhuǎn)換
其公式(5)中TWi表示類型i的票房影響力,n代表該電影所屬的類型有n種。
其余非數(shù)值型數(shù)據(jù)可以由此類推,得到數(shù)值化后的結(jié)果。
3.2 應(yīng)用線性回歸算法進(jìn)行票房預(yù)測(cè)
經(jīng)過(guò)初步預(yù)測(cè),該文將電影票房定義為因變量Y。篩選以下變量為自變量:電影評(píng)分定義為X1,導(dǎo)演影響力為X2,主演影響力為X3,電影類型影響力為X4,上映日期影響力定義為X5,上映年份為X6??梢缘玫皆摱嘣€性回歸的模型為:
Spark中的ML庫(kù)提供了對(duì)各種機(jī)器學(xué)習(xí)算法的支持,spark.ml.regression.LinearRegression包支持的是線性回歸算法。進(jìn)過(guò)多次實(shí)驗(yàn)的比對(duì),對(duì)算法中的各參數(shù)的設(shè)置如下:
最大迭代次數(shù) MaxIter = 50
正則化參數(shù) Regparam = 0.3
混合參數(shù) ElasticNetParam = 0.8
最后得到多元線性回歸預(yù)測(cè)模型中的回歸系數(shù)取值如表1:
4 預(yù)測(cè)結(jié)果驗(yàn)證
該文采用了兩種方式對(duì)預(yù)測(cè)效果進(jìn)行了驗(yàn)證:一種是計(jì)算擬合評(píng)價(jià)參數(shù)R2,另一種是將預(yù)測(cè)結(jié)果與實(shí)際的票房進(jìn)行比對(duì)。
通過(guò)計(jì)算,得到擬合評(píng)價(jià)參數(shù)R2的結(jié)果為0.843,說(shuō)明預(yù)測(cè)效果良好。
另外,該文選取了25部2011-2017年的電影作為測(cè)試集,將測(cè)試數(shù)據(jù)導(dǎo)入預(yù)測(cè)模型中得到預(yù)測(cè)票房值,再與真實(shí)的票房進(jìn)行對(duì)比,比對(duì)結(jié)果如圖3所示。
圖3中,當(dāng)電影票房位于1億到5億之間時(shí)預(yù)測(cè)效果最佳。因?yàn)榇藚^(qū)間的電影數(shù)據(jù)比較豐富,預(yù)測(cè)票房有著較小的誤差。而當(dāng)電影真實(shí)票房很高的時(shí)候,訓(xùn)練數(shù)據(jù)不夠豐富,預(yù)測(cè)票房的誤差就不太穩(wěn)定。
總體來(lái)看,由線性回歸算法構(gòu)建的預(yù)測(cè)模型已經(jīng)能夠提供很多具有參考性的信息。
5 結(jié)束語(yǔ)
該文從豆瓣電影和貓眼電影上爬取的電影信息,將非數(shù)值型數(shù)據(jù)轉(zhuǎn)化為數(shù)值型數(shù)據(jù)之后,利用Spark的機(jī)器學(xué)習(xí)庫(kù)進(jìn)行多元線性回歸算法訓(xùn)練,構(gòu)建出了電影票房的預(yù)測(cè)模型。從評(píng)價(jià)結(jié)果看,構(gòu)建好的預(yù)測(cè)模型有著比較好的預(yù)測(cè)結(jié)果。
但是該預(yù)測(cè)模型還存在著有待改進(jìn)的地方,比如說(shuō)該文采用的非數(shù)值型數(shù)據(jù)轉(zhuǎn)化為數(shù)值型數(shù)據(jù)的方法,轉(zhuǎn)化后的導(dǎo)演、演員的影響力數(shù)值差異變得很大,會(huì)削弱其他變量對(duì)票房的影響。此外,目前所爬取的數(shù)據(jù)還不夠豐富、數(shù)據(jù)更新不夠及時(shí),這些影響了模型的準(zhǔn)確性。
有文獻(xiàn)[8]提到多元線性回歸預(yù)測(cè)模型的優(yōu)勢(shì)在于能清楚地解釋影響因素對(duì)票房的影響程度,但在預(yù)測(cè)精度上不如神經(jīng)網(wǎng)絡(luò)。
在下一步的工作中,將著手解決目前存在的問(wèn)題,并嘗試采用神經(jīng)網(wǎng)絡(luò)的方法構(gòu)建模型,與現(xiàn)有的模型進(jìn)行比對(duì),進(jìn)一步提高預(yù)測(cè)的準(zhǔn)確度。
參考文獻(xiàn):
[1] 李龍生, 李曉怡. 由近期國(guó)產(chǎn)電影的高票房現(xiàn)象淺析中國(guó)電影產(chǎn)業(yè)的發(fā)展[J]. 藝術(shù)與設(shè)計(jì): 理論, 2018, 2(9): 119-121.
[2] Reggie Panaligan, Andrea Chen. Quantifying Movie Magic with Google Search[EB/OL]. http://www.webmasterworld.com/google_adwords/4581847.htm.
[3] 何曉雪, 畢圓夢(mèng), 姜繩. 基于網(wǎng)絡(luò)數(shù)據(jù)預(yù)測(cè)電影票房的多元線性回歸方程構(gòu)建[J]. 新媒體研究, 2018, 4(5): 41-48.
[4] 刁文鑫. 當(dāng)代中國(guó)“現(xiàn)象電影”的傳播特征及影響研究[D]. 合肥: 安徽大學(xué), 2018.
[5] 馬天男, 牛東曉, 黃雅莉, 等. 基于Spark平臺(tái)和多變量L_2-Boosting回歸模型的分布式能源系統(tǒng)短期負(fù)荷預(yù)測(cè)[J]. 電網(wǎng)技術(shù), 2016, 40(6): 1642-1649.
[6] 殷樂(lè), 姚遠(yuǎn), 劉辰. 基于Spark的用戶行為分析系統(tǒng)框架研究[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2018(2): 56-57.
[7] 彭輝, 趙亞軍, 胡章浩. 應(yīng)用多元線性回歸模型的鐵路客運(yùn)量預(yù)測(cè)[J]. 重慶理工大學(xué)學(xué)報(bào): 自然科學(xué), 2018, 32(9): 190-193.
[8] 張雪. 基于深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的電影票房預(yù)測(cè)[D]. 北京: 首都經(jīng)濟(jì)貿(mào)易大學(xué), 2017.