張曉穎,賀伊雯,王立越
(長春大學(xué) 理學(xué)院,長春 130022)
隨著大數(shù)據(jù)時(shí)代的興起,用戶信息和電商銷售數(shù)據(jù)成為了電商行業(yè)中不可或缺的重要數(shù)據(jù)資產(chǎn)。在大數(shù)據(jù)架構(gòu)和分析技術(shù)的支持下,這些數(shù)據(jù)的價(jià)值隨著市場需求的增長而不斷提升,使得電商銷售數(shù)據(jù)的重要性日益凸顯。目前針對電商銷售預(yù)測的研究主要集中在3個(gè)方面:(1)銷售預(yù)測理論研究。RANA等[1]提出了由遺傳算法優(yōu)化的深度學(xué)習(xí)模型,并證明了所提出的方法在提供準(zhǔn)確的銷售預(yù)測方面的優(yōu)越性,記錄的調(diào)查結(jié)果可以作為零售商店尋求提高其銷售預(yù)測能力的寶貴資源。GAO等[2]在分析數(shù)據(jù)空間理論的基礎(chǔ)上,構(gòu)建了基于數(shù)據(jù)空間的制造業(yè)多價(jià)值鏈協(xié)同數(shù)據(jù)管理系統(tǒng)架構(gòu),建立了基于數(shù)據(jù)管理系統(tǒng)的產(chǎn)品銷售智能預(yù)測模型。(2)推薦系統(tǒng)研究。HUANG等[3]基于知識圖的推薦技術(shù)主要用于解決推薦系統(tǒng)在分析大數(shù)據(jù)量時(shí)遇到的可解釋性、冷啟動(dòng)等問題,介紹了基于知識圖的推薦技術(shù)的4個(gè)方面:推薦算法、評價(jià)指標(biāo)、數(shù)據(jù)集和模型。NI等[4]提出了一種基于RippleNet的混合推薦模型,使用Node2vec-side進(jìn)行項(xiàng)目肖像建模,并探索項(xiàng)目之間潛在的關(guān)聯(lián)關(guān)系。(3)銷售數(shù)量預(yù)測研究。唐中軍等[5]在給定有限樣本量的情況下,提出了多證據(jù)動(dòng)態(tài)加權(quán)組合預(yù)測和MEDWCF方法對產(chǎn)品的銷量進(jìn)行預(yù)測,從而在產(chǎn)品上市前為管理者做出更有效的營銷決策。BOONE等[6]討論了數(shù)據(jù)爆炸對產(chǎn)品預(yù)測的影響以及如何提高數(shù)據(jù)爆炸的利用率,總結(jié)了如何從時(shí)間序列數(shù)據(jù)中洞察消費(fèi)者行為。
在大數(shù)據(jù)和互聯(lián)網(wǎng)快速進(jìn)步的背景下,電商銷售環(huán)境變得日益動(dòng)態(tài)且復(fù)雜。這種多變的環(huán)境使得傳統(tǒng)的時(shí)間序列預(yù)測算法難以實(shí)現(xiàn)準(zhǔn)確預(yù)測。針對這一挑戰(zhàn),許多學(xué)者正積極研究具有更強(qiáng)泛化能力的機(jī)器學(xué)習(xí)算法。SINGH等[7]探究了京東某店鋪的銷售額與相關(guān)變量間存在的關(guān)系,首先對將商品分為種類最多的兩種和種類最少的兩種然后分別使用GBDT算法和BP神經(jīng)網(wǎng)絡(luò)進(jìn)行相應(yīng)的預(yù)測。RAIZADA等[8]對幾種監(jiān)督學(xué)習(xí)算法,如隨機(jī)森林、KNN、SVM等進(jìn)行對比分析,建立預(yù)測模型,準(zhǔn)確估計(jì)沃爾瑪門店在不同地理位置的幾家零售店的可能銷售額。在以往傳統(tǒng)機(jī)器學(xué)習(xí)算法往往都只是采用一個(gè)學(xué)習(xí)器模型(單個(gè)算法模型)來進(jìn)行的,在某些情況下,單一的學(xué)習(xí)方法勢必存在缺陷,為解決單一學(xué)習(xí)器在預(yù)測中的泛化能力弱等問題,不少學(xué)者將集成學(xué)習(xí)的方法加以研究SHILONG等[9]對沃爾瑪?shù)纳唐蜂N售數(shù)據(jù)進(jìn)行分析,利用特征工程提取特征,然后利用LGBoost和XGBoost預(yù)測特征的未來銷量。它適用于內(nèi)存資源較少的情況,可以獲得很好的銷售預(yù)測效果。ROHAAN等[10]在隨機(jī)森林和神經(jīng)網(wǎng)絡(luò)等模型的的自定義模型堆中找到了合適的B2B銷售傾向模型,從而實(shí)現(xiàn)更好的規(guī)劃和管理,提高銷售預(yù)測的準(zhǔn)確性。
由于目前傳統(tǒng)時(shí)間序列預(yù)測算法對于大數(shù)據(jù)環(huán)境下的電商銷售預(yù)測已經(jīng)不再適用,而單一的機(jī)器學(xué)習(xí)模型在預(yù)測時(shí)又存在著在不同的條件下所表現(xiàn)出的泛化能力弱等問題,本研究采用基于集成學(xué)習(xí)的方法,對比隨機(jī)森林RT、漸進(jìn)梯度回歸樹GBRT與一般線性回歸、彈性網(wǎng)絡(luò)、支持向量回歸、KNN回歸樹、決策樹、多層感知機(jī)、AdaBoost在真實(shí)環(huán)境下電商銷售量數(shù)據(jù)的預(yù)測性能,探討出一個(gè)更為高效的電商銷量預(yù)測方法。
(1)
接下來使用自助法重抽樣法來生成單棵CART樹的樣本,并用隨機(jī)向量(X,Y)來對樣本進(jìn)行標(biāo)記,其中訓(xùn)練集的標(biāo)簽值用Y來表示,這樣組合模型h(X,θn)就可以用來表示整個(gè)隨機(jī)森林,其中模型的均方誤差可表示為:
EX,Y(Y-h(X))2,
(2)
當(dāng)隨機(jī)森林中樹的數(shù)目無限增大時(shí)有:
EX,Y(Y-avnh(X,θn))2→EX,Y(Y-Eθh(X,θ))2,
(3)
其回歸函數(shù)表示為:Y=Eθh(X,θ),在現(xiàn)實(shí)場景中,可以假設(shè)k充分大,于是可用近似公式:Y=avnh(X,θn)進(jìn)行替代。
隨機(jī)森林的泛化誤差可以用PE進(jìn)行表示,那么可以得到CART樹的平均泛化誤差就為:
PE(tree)=EθEX,Y(Y-Eθh(X,θ))2,
(4)
對于假定所有的θ,都有EY=Exh(X,θ),則有:
(5)
Step1.對數(shù)據(jù)進(jìn)行抽樣。通過隨機(jī)且有放回的bootstrap重抽樣的方式對每個(gè)學(xué)習(xí)器進(jìn)行抽樣,這里樣本子空間定義為抽取到的樣本,通過這種方式就完成了對于每個(gè)學(xué)習(xí)器的樣本訓(xùn)練集的構(gòu)建;
Step2.屬性子空間的構(gòu)造。屬性子空間的構(gòu)造包括兩個(gè)方面一個(gè)是對屬性子空間進(jìn)行組成,一個(gè)是設(shè)置各節(jié)點(diǎn)的準(zhǔn)側(cè),在這里前者使用給定的隨機(jī)參數(shù)變量,后者使用各個(gè)屬性分裂值中較優(yōu)的為準(zhǔn)則;
Step3.建立決策樹。決策樹是一棵在樣本子空間上的無剪枝衍生決策樹,然后將決策樹進(jìn)行組合形成一個(gè)學(xué)習(xí)器;
Step4.構(gòu)建隨機(jī)森林模型。對Step3所建立的決策樹構(gòu)建成隨機(jī)森林模型,并對模型進(jìn)行測試;
Step5.決策投票。首先通過隨機(jī)森林模型對各個(gè)事件進(jìn)行檢測,然后收集來自于各個(gè)學(xué)習(xí)器對與檢驗(yàn)數(shù)據(jù)的投票結(jié)果,最后采用較多得票數(shù)的策略作為該測試數(shù)據(jù)的最終方法,并決定其結(jié)果。
漸進(jìn)梯度回歸樹(GBRT)是源自Boosting算法的一種改進(jìn)迭代回歸算法。GBRT 的關(guān)鍵是將全部迭代的數(shù)的結(jié)果一一相加,累加出的結(jié)果作為最后的結(jié)果。因此,每一個(gè)樹都不是最后預(yù)測結(jié)果的直接決定因素。本研究對電商銷量進(jìn)行預(yù)測,電商銷量也正是步步累加的結(jié)果。預(yù)測之前先初始化損失函數(shù)。結(jié)合實(shí)際情況,損失用RMSE來衡量。對于損失函數(shù)的優(yōu)化也就是利用GBRT來縮小預(yù)測結(jié)果的RMSE,使其達(dá)到最小。
GBRT算法的具體步驟如下:
輸入:訓(xùn)練集T={(x1,y1),(x2,y2),...?,(xm,ym)}和損失函數(shù)L(y,f(x));
Step1.初始化損失函數(shù),即通過迭代使真實(shí)值和預(yù)測值差異最小化:
(6)
Step2.開始算法迭代:
(1)對m=1,2,3,……,M,迭代建立M棵數(shù);
(2)對i=1,2,3,……,N,用模型中損失函數(shù)的負(fù)梯度來估計(jì)殘差,因此殘差也就是損失函數(shù)的均方誤差:
(7)
(3)對rmi進(jìn)行擬合得到一棵回歸樹,以便得到第m棵樹的葉節(jié)點(diǎn)區(qū)域RMj;
(4)對j=1,2,3,……,J,計(jì)算
cmj=argmin∑xi=RmjL(yi,fm-1(xi)+c),
(8)
(5)更新回歸樹:
(9)
Step3.完成M棵樹的迭代,得到最終模型:
(10)
當(dāng)隨機(jī)森林與GBRT進(jìn)行比較時(shí),能夠看到GBRT在一些方面做出了改進(jìn):(1)GBRT預(yù)測精度一般都比較高,也常常高于隨機(jī)森林算法,主要的原因就是GBRT在理論上通常都會(huì)在模型收斂的時(shí)候才停止訓(xùn)練;(2)當(dāng)能夠控制每一次迭代的步長和權(quán)值時(shí),就能夠盡可能避免過擬合,而在GBRT算法中前后的迭代關(guān)系之間可以修復(fù)一些較差的樹的結(jié)果,因此這也是改進(jìn)的一個(gè)方面;(3)由于串行迭代GBRT在訓(xùn)練時(shí)對計(jì)算空間要求不高,這也使得算法更為有效;(4)因?yàn)閱蝹€(gè)學(xué)習(xí)器性能并不會(huì)影響GBRT的預(yù)測精度,即使部分學(xué)習(xí)器性能較差,通過多次選代,依然可以得到較優(yōu)的結(jié)果。
研究數(shù)據(jù)來源于某線上銷售平臺的真實(shí)歷史銷量數(shù)據(jù)與相關(guān)數(shù)據(jù)記錄,對原始數(shù)據(jù)進(jìn)行性質(zhì)類別的劃分,可以分為:(1)用戶的行為數(shù)據(jù),其中包括商品交易時(shí)間、商品ID、商品點(diǎn)擊次數(shù)、商品加購次數(shù)、商品收藏次數(shù)、商品購買次數(shù)、在售天數(shù)。(2)商品的銷售數(shù)據(jù),包括每日商品銷量、平均價(jià)、吊牌價(jià)。3.平臺的活動(dòng)數(shù)據(jù),包括活動(dòng)類型、節(jié)奏類型。
在原始的數(shù)據(jù)集的基礎(chǔ)上,即商品在用戶的行為數(shù)據(jù)、商品的銷售數(shù)據(jù)和平臺的活動(dòng)數(shù)據(jù),通過特征工程理論對上述原始數(shù)據(jù)的特征進(jìn)行自動(dòng)化特征工程處理[13],并利用pandas庫和scikit-learn庫進(jìn)行共同處理,在處理過程中主要分為數(shù)據(jù)集成和自動(dòng)化特征處理兩個(gè)部分,數(shù)據(jù)集成處理示意圖如圖1所示。
圖1 數(shù)據(jù)集成處理示意圖
對數(shù)據(jù)進(jìn)行自動(dòng)化特征處理如表1所示。
表1 參考文獻(xiàn)類型數(shù)據(jù)的自動(dòng)化特征處理一覽表
機(jī)器學(xué)習(xí)中有非常多的回歸預(yù)測算法,諸如:廣義線性模型中的線性回歸(LinearRegression)、彈性網(wǎng)絡(luò)(ElasticNet)等;K近鄰中的KNN回歸樹(KNeighbors Regressor);AdaBoost的迭代算法、決策樹、神經(jīng)網(wǎng)絡(luò)中的多層感知器(Multi-Layer Perception)和支持向量機(jī)之中的支持向量回歸、以及本研究所介紹的兩種集成學(xué)習(xí)算法、隨機(jī)森林(RF)和漸進(jìn)梯度回歸樹(GBRT)等。為比較機(jī)器學(xué)習(xí)當(dāng)中的眾多回歸預(yù)測算法的優(yōu)度,選取具有代表性的9種回歸預(yù)測算法,并利用5折交叉檢驗(yàn)進(jìn)行評價(jià),具體結(jié)果如表2所示。
表2 各種方法的5折交叉檢驗(yàn)表
各算法在5折交叉檢驗(yàn)表中的平均得分如圖2所示。
圖2 各算法得分折線圖
從表1和圖2中可看出,擬合優(yōu)度值較高的是隨機(jī)森林算法和梯度提升回歸樹算法,分別達(dá)到86.8%和82.8%,得分折線位置遠(yuǎn)高于其他算法,且得分均值標(biāo)準(zhǔn)差分別為0.014 7和0.009 8。因此,相較于其他回歸預(yù)測算法而言,隨機(jī)森林算法和漸進(jìn)梯度回歸樹算法在電商銷量預(yù)測中所表現(xiàn)出的性能優(yōu)于其他算法。于是選擇隨機(jī)森林算法和漸進(jìn)梯度回歸樹算法對電商銷量進(jìn)行算法參數(shù)的調(diào)整,以使得算法的整體性能更加優(yōu)越。
為了獲得算法的最優(yōu)參數(shù),采用網(wǎng)格搜索(GridSearchCV)對算法進(jìn)行參數(shù)優(yōu)化。網(wǎng)格搜索不僅可以自動(dòng)調(diào)整參數(shù),還可以交叉驗(yàn)證各參數(shù)組合的平均計(jì)算精度。此次實(shí)例采用5折交叉驗(yàn)證的方法,并取平均值作為模型的預(yù)測評價(jià)指標(biāo)。因此,根據(jù)隨機(jī)森林的原則,隨機(jī)森林的最優(yōu)參數(shù)可以通過網(wǎng)格搜索的方法進(jìn)行尋找,具體如表3所示。
表3 隨機(jī)森林最優(yōu)參數(shù)表
同理,根據(jù)梯度提升樹原理,利用網(wǎng)格搜索的方法得出隨機(jī)森林的最優(yōu)參數(shù),具體如表4所示。
表4 漸進(jìn)梯度回歸樹最優(yōu)參數(shù)
在調(diào)整優(yōu)化參數(shù)后,需要對算法的性能進(jìn)行評估,也就是把預(yù)測結(jié)果與真實(shí)值進(jìn)行比對。利用回歸模型中常用的擬合優(yōu)度、均方誤差、均方根誤差、平均絕對誤差,來評價(jià)隨機(jī)森林算法和梯度提升樹算法在電商銷量預(yù)測過程中的算法適用性情況。
根據(jù)5折交叉驗(yàn)證和網(wǎng)格搜索得出的隨機(jī)森林與GBRT的最優(yōu)參數(shù),調(diào)參后對相應(yīng)的評價(jià)指標(biāo)進(jìn)行計(jì)算,如表5所示。
表5 隨機(jī)森林與GBRT的評價(jià)指標(biāo)表
根據(jù)性能評價(jià)指標(biāo)表看出,隨機(jī)森林對電商銷量預(yù)測的擬合優(yōu)度(R2)達(dá)到85.9%,均方誤差(MSE)為7.427,均方根誤差(RMSE)為2.725,平均絕對誤差(MAE)為0.947。GBRT對電商銷量預(yù)測的R2達(dá)到88.01%,MSE為6.244,RMSE為2.499,MAE為0.982。從擬合優(yōu)度來說,GBRT算法相對于隨機(jī)森林對電商銷售量的預(yù)測效果更好,除平均絕對誤差略比隨機(jī)森林的平均絕對誤差高一點(diǎn)之外,其他性能指標(biāo)比隨機(jī)森林效果較優(yōu)。
從預(yù)測結(jié)果來看,原始數(shù)據(jù)中商品的銷量有高有低,部分商品雖然存在所謂的高銷量即“異常值”點(diǎn),但這兩種算法都較好的擬合了原始數(shù)據(jù),對這些“異常值”點(diǎn)也都有較好的表達(dá)。通過均方誤差,均方根誤差,平均絕對誤差來說均處于可以接受范圍之內(nèi)。整體來看,隨機(jī)森林算法和GBRT算法對于電商銷量預(yù)測來說都能較好的符合實(shí)際電商銷售預(yù)測場景中的應(yīng)用,但GBRT算法在性能指標(biāo)上相對優(yōu)于RF隨機(jī)森林算法,如圖3、4所示。
圖3 隨機(jī)森林預(yù)測結(jié)果
圖4 GBRT預(yù)測結(jié)果
通過某線上銷售平臺的真實(shí)歷史向量數(shù)據(jù)與相關(guān)數(shù)據(jù)記錄用集成學(xué)習(xí)的隨機(jī)森林和漸進(jìn)梯度回歸、普通線性回歸、彈性網(wǎng)絡(luò)、支持向量回歸、KNN回歸樹、決策樹、多層感知機(jī)、AdaBoost分別對電商銷量數(shù)據(jù)進(jìn)行了分析和預(yù)測,并評價(jià)了各模型的預(yù)測性能差異。如結(jié)果所示,隨機(jī)森林和GBRT預(yù)測性能更優(yōu)。通過搜索最優(yōu)參數(shù),得出更優(yōu)的電商銷量預(yù)測模型。利用k折交叉驗(yàn)證對具有代表性的算法進(jìn)行評價(jià),認(rèn)為更新參數(shù)后的隨機(jī)森林和GBRT在電商銷量預(yù)測中所表現(xiàn)出的性能優(yōu)于其他算法。最后,相對較好的兩種更新后的集成算法中,GBRT的預(yù)測效果更好。隨著網(wǎng)絡(luò)購物用戶的増多,使得電子商務(wù)交易量越來越大,這也使得電商產(chǎn)生的銷售數(shù)據(jù)成指數(shù)級上漲,近些年來,“大數(shù)據(jù)”和“機(jī)器學(xué)習(xí)”的概念和技術(shù)開始被商界廣泛關(guān)注,大量的銷售數(shù)據(jù)就變成了一個(gè)有待開發(fā)和挖掘的數(shù)據(jù)寶庫,只要有技術(shù)有需求,自然寶庫的價(jià)值也就開始凸顯。所以在日常的銷售預(yù)測中應(yīng)該關(guān)注更多的銷售細(xì)節(jié),將數(shù)據(jù)更加分類化,這樣即使在研究方法一定的情況下,也能夠提高現(xiàn)有數(shù)據(jù)的利用效率,提升電商行業(yè)整體價(jià)值水平。