徐英卓,郭 博,王六鵬
(1 西安石油大學 計算機學院,西安 710000;2 西安石油大學 石油工程學院,西安 710000)
游戲的銷量是衡量游戲成功與否的重要指標,對游戲的銷量做出一個合理、準確的預測,很大程度上能減少投資風險,使投資收益最大化。當前的銷量研究中,采用機器學習對銷量預測的研究方法有很多,但是在游戲市場還未對游戲的銷量進行預測[1]。機器學習中的非線性模型,如隨機森林(Random Forest,RF)、極端梯度提升方法(Extreme Gradient Boosting,XGB)和梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)等是以決策樹為基本模型的集成學習方法,可把單一學習模型有機結合,形成一個統一的模型,從而獲得更準確、穩定的預測學習結果。GBDT作為較為成熟的集成學習算法,能有效降低預測值和真實值的偏差。通過不斷擬合上一顆樹的殘差來提升性能,更注重學習模型的精度,具有高效、預測準確、對原始數據不敏感、模型的可解釋性強等優點[2]。
本文采用GBDT 算法對游戲銷量進行建模預測研究,并綜合對比決策樹、線性回歸、極端隨機樹3 種經典回歸模型的預測性能和結果。
本文研究的目的是對游戲銷量做出預測,采用近十年各個游戲平臺主流游戲的特征數據,其中包括訓練集18 000 條數據,測試集7 000 條數據。游戲特征數據主要包括游戲的名稱、發行日期、語言、發行商、支持平臺、價格、積極評價數量、消極評價數量等12 種特征數據。其中,特征數據中包含字符型特征和數值型特征,為保持輸入模型參數的格式一致,故使用留一法對字符型特征數據進行變量編碼,將其轉換為數值型數據。
數據預處理是提高預測結果準確性的先決條件。數據預處理決定了機器學習訓練的上限,而算法和模型的預測結果則更大程度的提高機器學習訓練的上限[3]。
本次研究收集的數據較為駁雜,存在跨度較大的數據,并且還存在“0”值以及缺失值。所以在使用數據之前,需要對數據中的缺失值和異常值進行處理。此外,由于特征數據具有不同的測量單位,數據之間的數值差距可能會影響模型,因此需要重新進行數據處理,以避免更重要的特征會影響其他特性,同時提高模型的收斂速度[4]。本文采用min-max 標準化,使得結果映射到[0,1]之間,如式(1):

其中xmax為樣本數據最大值,xmin為樣本數據最小值。
經過上述歸一化處理后,原始數據全部轉換為無量綱指標的評估值x*,即當評估值處于相同的定量水平,可以進行表征輸入[5]。
梯度提升決策樹是一種迭代的決策樹算法,由多棵決策樹構成的,每個決策樹的結果都是通過加法來確定的。GBDT 算法通過每次迭代在降低殘差的方向新建一顆決策樹,并在此基礎上進一步迭代提高預測結果的準確性。GBDT 通過向前分布算法和加法模型來完成學習的優化過程。該算法的主要流程:首先要初始化第一個基學習器,基學習器是一個只有根節點的樹;在此基礎上,建立M個基學習器,并對其求解損耗函數,將其作為殘差的估算值;創建一顆回歸樹CART 以擬合該殘差;通過擬合后的樹葉子節點尋找盡量減少損耗的數值;最后,對學習器進行更新[6]。
GBDT 算法步驟:
初始化基學習器f0(x),為式(2)

其中,L(yi,c)為損失函數,用于計算真實值與預測值之間的誤差,argmin 為確定損失函數值最小時c取值的函數。
(1)建立一系列CART 回歸樹,在此基礎上利用梯度提升技術擬合殘差,GBDT 規定將損失值的負梯度作為殘差估計值rmi,為公式(3)

(2)確定殘差估計值后,利用CART 回歸樹進行擬合,得到第m棵樹的葉節點區域R,其中(j =1,2,…,J),對于每個葉節點區域,確定使對應損失函數最小化的最佳擬合值Cmj,為公式(4)

(3)更新學習器fm(x),為公式(5)

其中,I為學習率。
本文GBDT 模型采用分位數損失函數,表達式為式(7)

其中,θ為分位數。
本文采用對訓練集進行無放回抽樣的方法,抽樣比例v為(0,1]。
2.2.1 游戲銷量預測模型建立流程
以游戲平臺實際數據為基礎,通過對影響游戲銷量的相關因素進行分析,結合數學模型得出合適的模型參數,從而建立游戲銷量預測模型。通過這種方式建立的游戲銷量預測模型不需經歷復雜的分析過程,模型建立難度較小,實用性好。在實際數據中,通過對實際數據處理建立模型,所得模型的準確率較高。基于GBDT 的游戲銷量預測模型建立流程如圖1 所示。

圖1 基于GBDT 的游戲銷量預測模型建立流程Fig.1 Process of establishing game sales prediction model based on GBDT
(1)樣本數據進行特征工程和數據預處理之后,將全部的游戲銷量數據集劃分為訓練集和測試集;
(2)通過已有的數據模型進行分析,再調整模型參數,并對其進行訓練。本文模型所設置的參數包括最大迭代次數、學習率、最大特征數、樹的最大深度以及子采樣等;
(3)將測試集輸入到模型中,得出預測結果;
(4)對模型進行評估、對比和分析。
2.2.2 模型參數設置
數據預處理后,對數據進行互信息關聯分析,游戲特征參數相關性分析熱力圖如圖2 所示。

圖2 游戲特征參數相關性分析熱力圖Fig.2 Thermal diagram of correlation analysis of game feature parameters
其中,銷量與發行日期,游戲語言互信息值較低,對模型預測無太多參考價值,故舍棄這兩個特征。將其他9 種游戲特征作為游戲銷量預測模型的輸入變量,建立GBDT 游戲銷量預測模型。同時在實驗時使用網絡搜索(GridSearchCV)法選擇模型的最佳參數,采用五折交叉驗證的方法對結果進行驗證。游戲銷量預測模型的最優參數設置見表1。

表1 游戲銷量預測模型各參數的含義及取值Tab.1 The meanings and values of each parameter of the game sales prediction model
為了驗證GBDT 算法模型在游戲銷量預測的優越性,本文選取決策樹、線性回歸、極端隨機樹和GBDT 優化后模型的擬合優度進行對比分析,按照不同比例劃分訓練集和測試集,并通過五折交叉驗證對結果進行驗證。
各個模型的預測結果采用擬合優度(R2)進行評價,可以直觀的觀察到各個模型的預測精度,結果見表2。

表2 各個模型擬合優度Tab.2 Goodness of fit of each model
優化GBDT 算法后游戲銷量預測模型測試集預測結果對比圖如圖3 所示,其中因數據量較大,只截取部分數據,便于觀察。

圖3 優化后的游戲銷量模型測試集預測結果對比Fig.3 Comparison of prediction results of the test set of optimized game sales model
在模型訓練中,通過得到各個特征參數的重要性得分,來解釋模型的可行性。
計算出每個特征參數的重要性得分,并對其重要程度排序,如圖4 所示。

圖4 游戲銷量預測模型特征參數重要度排序Fig.4 Importance ranking of feature parameters of game sales prediction model
為了分析文中的預測模型的有效性以及預測效果,本文將其與基礎預測模型決策樹、線性回歸和極端隨機樹進行了對比實驗,其中擬合優度R2最大值為1。R2的值越接近于1,說明當前回歸方程對預測值的擬合程度越好。因此本文提出的基于GBDT 優化的游戲銷量預測模型較決策樹、線性回歸和極端隨機樹擁有良好的預測精度,可以很好地預測游戲銷量,具有較高的可靠性。
通過預測值與真實值對比曲線,可以更為直觀的發現分析預測值與真實值的趨勢走向以及擬合程度。預測趨勢與實際值的趨勢比較吻合,但是在拐點處波動較大。
對游戲銷量預測模型的特征參數重要度排序,對模型的貢獻度最大的特征是消極評價(negative_ratings),其次是積極評價(opstitive_ratings),游戲人數類別(categories)特征的重要性得分最低。消極評價對于銷量的影響最為重要,符合結合實際中下載游戲的情況,說明一款游戲的銷量,積極和消極的評價起到了至關重要的作用。
(1)應用數據處理對游戲銷量預測進行特征工程和信息關聯分析,能夠有效地去除干擾預測結果的特征,降低噪聲干擾和模型冗余,降低其損失值;
(2)基于GBDT 算法建立的游戲銷量預測模型,具有更高的預測精度和準確性,能有效的預測不同特征下的游戲銷量、可以為游戲銷量提供一定的參考;
(3)本文研究證明了數據驅動模型在游戲銷量預測模型應用中的可行性和有效性,為預測游戲銷量提供了更為有效的方式和思路。