徐英卓,郭 博,王六鵬
(1 西安石油大學 計算機學院,西安 710000;2 西安石油大學 石油工程學院,西安 710000)
游戲的銷量是衡量游戲成功與否的重要指標,對游戲的銷量做出一個合理、準確的預測,很大程度上能減少投資風險,使投資收益最大化。當前的銷量研究中,采用機器學習對銷量預測的研究方法有很多,但是在游戲市場還未對游戲的銷量進行預測[1]。機器學習中的非線性模型,如隨機森林(Random Forest,RF)、極端梯度提升方法(Extreme Gradient Boosting,XGB)和梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)等是以決策樹為基本模型的集成學習方法,可把單一學習模型有機結合,形成一個統(tǒng)一的模型,從而獲得更準確、穩(wěn)定的預測學習結果。GBDT作為較為成熟的集成學習算法,能有效降低預測值和真實值的偏差。通過不斷擬合上一顆樹的殘差來提升性能,更注重學習模型的精度,具有高效、預測準確、對原始數(shù)據(jù)不敏感、模型的可解釋性強等優(yōu)點[2]。
本文采用GBDT 算法對游戲銷量進行建模預測研究,并綜合對比決策樹、線性回歸、極端隨機樹3 種經(jīng)典回歸模型的預測性能和結果。
本文研究的目的是對游戲銷量做出預測,采用近十年各個游戲平臺主流游戲的特征數(shù)據(jù),其中包括訓練集18 000 條數(shù)據(jù),測試集7 000 條數(shù)據(jù)。游戲特征數(shù)據(jù)主要包括游戲的名稱、發(fā)行日期、語言、發(fā)行商、支持平臺、價格、積極評價數(shù)量、消極評價數(shù)量等12 種特征數(shù)據(jù)。其中,特征數(shù)據(jù)中包含字符型特征和數(shù)值型特征,為保持輸入模型參數(shù)的格式一致,故使用留一法對字符型特征數(shù)據(jù)進行變量編碼,將其轉換為數(shù)值型數(shù)據(jù)。
數(shù)據(jù)預處理是提高預測結果準確性的先決條件。數(shù)據(jù)預處理決定了機器學習訓練的上限,而算法和模型的預測結果則更大程度的提高機器學習訓練的上限[3]。
本次研究收集的數(shù)據(jù)較為駁雜,存在跨度較大的數(shù)據(jù),并且還存在“0”值以及缺失值。所以在使用數(shù)據(jù)之前,需要對數(shù)據(jù)中的缺失值和異常值進行處理。此外,由于特征數(shù)據(jù)具有不同的測量單位,數(shù)據(jù)之間的數(shù)值差距可能會影響模型,因此需要重新進行數(shù)據(jù)處理,以避免更重要的特征會影響其他特性,同時提高模型的收斂速度[4]。本文采用min-max 標準化,使得結果映射到[0,1]之間,如式(1):
其中xmax為樣本數(shù)據(jù)最大值,xmin為樣本數(shù)據(jù)最小值。
經(jīng)過上述歸一化處理后,原始數(shù)據(jù)全部轉換為無量綱指標的評估值x*,即當評估值處于相同的定量水平,可以進行表征輸入[5]。
梯度提升決策樹是一種迭代的決策樹算法,由多棵決策樹構成的,每個決策樹的結果都是通過加法來確定的。GBDT 算法通過每次迭代在降低殘差的方向新建一顆決策樹,并在此基礎上進一步迭代提高預測結果的準確性。GBDT 通過向前分布算法和加法模型來完成學習的優(yōu)化過程。該算法的主要流程:首先要初始化第一個基學習器,基學習器是一個只有根節(jié)點的樹;在此基礎上,建立M個基學習器,并對其求解損耗函數(shù),將其作為殘差的估算值;創(chuàng)建一顆回歸樹CART 以擬合該殘差;通過擬合后的樹葉子節(jié)點尋找盡量減少損耗的數(shù)值;最后,對學習器進行更新[6]。
GBDT 算法步驟:
初始化基學習器f0(x),為式(2)
其中,L(yi,c)為損失函數(shù),用于計算真實值與預測值之間的誤差,argmin 為確定損失函數(shù)值最小時c取值的函數(shù)。
(1)建立一系列CART 回歸樹,在此基礎上利用梯度提升技術擬合殘差,GBDT 規(guī)定將損失值的負梯度作為殘差估計值rmi,為公式(3)
(2)確定殘差估計值后,利用CART 回歸樹進行擬合,得到第m棵樹的葉節(jié)點區(qū)域R,其中(j =1,2,…,J),對于每個葉節(jié)點區(qū)域,確定使對應損失函數(shù)最小化的最佳擬合值Cmj,為公式(4)
(3)更新學習器fm(x),為公式(5)
其中,I為學習率。
本文GBDT 模型采用分位數(shù)損失函數(shù),表達式為式(7)
其中,θ為分位數(shù)。
本文采用對訓練集進行無放回抽樣的方法,抽樣比例v為(0,1]。
2.2.1 游戲銷量預測模型建立流程
以游戲平臺實際數(shù)據(jù)為基礎,通過對影響游戲銷量的相關因素進行分析,結合數(shù)學模型得出合適的模型參數(shù),從而建立游戲銷量預測模型。通過這種方式建立的游戲銷量預測模型不需經(jīng)歷復雜的分析過程,模型建立難度較小,實用性好。在實際數(shù)據(jù)中,通過對實際數(shù)據(jù)處理建立模型,所得模型的準確率較高。基于GBDT 的游戲銷量預測模型建立流程如圖1 所示。
圖1 基于GBDT 的游戲銷量預測模型建立流程Fig.1 Process of establishing game sales prediction model based on GBDT
(1)樣本數(shù)據(jù)進行特征工程和數(shù)據(jù)預處理之后,將全部的游戲銷量數(shù)據(jù)集劃分為訓練集和測試集;
(2)通過已有的數(shù)據(jù)模型進行分析,再調整模型參數(shù),并對其進行訓練。本文模型所設置的參數(shù)包括最大迭代次數(shù)、學習率、最大特征數(shù)、樹的最大深度以及子采樣等;
(3)將測試集輸入到模型中,得出預測結果;
(4)對模型進行評估、對比和分析。
2.2.2 模型參數(shù)設置
數(shù)據(jù)預處理后,對數(shù)據(jù)進行互信息關聯(lián)分析,游戲特征參數(shù)相關性分析熱力圖如圖2 所示。
圖2 游戲特征參數(shù)相關性分析熱力圖Fig.2 Thermal diagram of correlation analysis of game feature parameters
其中,銷量與發(fā)行日期,游戲語言互信息值較低,對模型預測無太多參考價值,故舍棄這兩個特征。將其他9 種游戲特征作為游戲銷量預測模型的輸入變量,建立GBDT 游戲銷量預測模型。同時在實驗時使用網(wǎng)絡搜索(GridSearchCV)法選擇模型的最佳參數(shù),采用五折交叉驗證的方法對結果進行驗證。游戲銷量預測模型的最優(yōu)參數(shù)設置見表1。
表1 游戲銷量預測模型各參數(shù)的含義及取值Tab.1 The meanings and values of each parameter of the game sales prediction model
為了驗證GBDT 算法模型在游戲銷量預測的優(yōu)越性,本文選取決策樹、線性回歸、極端隨機樹和GBDT 優(yōu)化后模型的擬合優(yōu)度進行對比分析,按照不同比例劃分訓練集和測試集,并通過五折交叉驗證對結果進行驗證。
各個模型的預測結果采用擬合優(yōu)度(R2)進行評價,可以直觀的觀察到各個模型的預測精度,結果見表2。
表2 各個模型擬合優(yōu)度Tab.2 Goodness of fit of each model
優(yōu)化GBDT 算法后游戲銷量預測模型測試集預測結果對比圖如圖3 所示,其中因數(shù)據(jù)量較大,只截取部分數(shù)據(jù),便于觀察。
圖3 優(yōu)化后的游戲銷量模型測試集預測結果對比Fig.3 Comparison of prediction results of the test set of optimized game sales model
在模型訓練中,通過得到各個特征參數(shù)的重要性得分,來解釋模型的可行性。
計算出每個特征參數(shù)的重要性得分,并對其重要程度排序,如圖4 所示。
圖4 游戲銷量預測模型特征參數(shù)重要度排序Fig.4 Importance ranking of feature parameters of game sales prediction model
為了分析文中的預測模型的有效性以及預測效果,本文將其與基礎預測模型決策樹、線性回歸和極端隨機樹進行了對比實驗,其中擬合優(yōu)度R2最大值為1。R2的值越接近于1,說明當前回歸方程對預測值的擬合程度越好。因此本文提出的基于GBDT 優(yōu)化的游戲銷量預測模型較決策樹、線性回歸和極端隨機樹擁有良好的預測精度,可以很好地預測游戲銷量,具有較高的可靠性。
通過預測值與真實值對比曲線,可以更為直觀的發(fā)現(xiàn)分析預測值與真實值的趨勢走向以及擬合程度。預測趨勢與實際值的趨勢比較吻合,但是在拐點處波動較大。
對游戲銷量預測模型的特征參數(shù)重要度排序,對模型的貢獻度最大的特征是消極評價(negative_ratings),其次是積極評價(opstitive_ratings),游戲人數(shù)類別(categories)特征的重要性得分最低。消極評價對于銷量的影響最為重要,符合結合實際中下載游戲的情況,說明一款游戲的銷量,積極和消極的評價起到了至關重要的作用。
(1)應用數(shù)據(jù)處理對游戲銷量預測進行特征工程和信息關聯(lián)分析,能夠有效地去除干擾預測結果的特征,降低噪聲干擾和模型冗余,降低其損失值;
(2)基于GBDT 算法建立的游戲銷量預測模型,具有更高的預測精度和準確性,能有效的預測不同特征下的游戲銷量、可以為游戲銷量提供一定的參考;
(3)本文研究證明了數(shù)據(jù)驅動模型在游戲銷量預測模型應用中的可行性和有效性,為預測游戲銷量提供了更為有效的方式和思路。