姚 蘭 戎荷婷 褚 超 高福祥
(東北大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 沈陽 110169)
隨著計(jì)算機(jī)技術(shù)的不斷革新,工業(yè)供應(yīng)鏈中的產(chǎn)品銷售相關(guān)數(shù)據(jù)可以被采集、存儲,并且正以前所未有的速度增長。因此,預(yù)測產(chǎn)品銷售系統(tǒng)的成交價(jià)格成為工業(yè)供應(yīng)鏈中最具挑戰(zhàn)性的應(yīng)用之一。就產(chǎn)品生產(chǎn)商而言,合理準(zhǔn)確的銷售價(jià)預(yù)測結(jié)果在管理成本、完善生產(chǎn)策略等方面有著不可忽視的重要作用;就產(chǎn)品銷售商而言,合理準(zhǔn)確的銷售價(jià)預(yù)測結(jié)果,可以輔助銷售戰(zhàn)略決策,更大程度上幫銷售商獲取較高利潤;就顧客而言,合理準(zhǔn)確的銷售價(jià)預(yù)測結(jié)果提供可靠的價(jià)格參考依據(jù),有利于與銷售商的進(jìn)一步合作。
常用的銷售預(yù)測方法包括時(shí)間序列預(yù)測法、指數(shù)平滑法、線性回歸法等[1~5],這些方法在各行各業(yè)中均有所應(yīng)用,其預(yù)測過程是以歷史銷售數(shù)據(jù)的變化為重點(diǎn),建立線性或非線性函數(shù),進(jìn)而實(shí)現(xiàn)銷售預(yù)測。但在數(shù)據(jù)量及數(shù)據(jù)信息含量不斷爆炸的今天,單純依靠由部分銷售數(shù)據(jù)屬性建立起來的預(yù)測函數(shù)已遠(yuǎn)遠(yuǎn)不能滿足企業(yè)和用戶的需求,因此可較完整保留數(shù)據(jù)信息、無須計(jì)算數(shù)據(jù)預(yù)測函數(shù)的神經(jīng)網(wǎng)絡(luò)方法便被國內(nèi)外學(xué)者研究應(yīng)用于不同行業(yè),并取得了顯著效果。
文獻(xiàn)[5]中優(yōu)化了神經(jīng)網(wǎng)絡(luò)用于市場銷售預(yù)測模型時(shí)的不足,并仿真銷售模型進(jìn)行實(shí)驗(yàn)預(yù)測,獲得了良好的實(shí)驗(yàn)結(jié)果。就消費(fèi)品銷售行業(yè)而言,文獻(xiàn)[1]對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),并用某飲料企業(yè)歷史銷售數(shù)據(jù)進(jìn)行實(shí)例驗(yàn)證,實(shí)驗(yàn)結(jié)果表明文章提出的改進(jìn)方法的預(yù)測結(jié)果準(zhǔn)確率更高。文獻(xiàn)[3]利用多維灰色模型對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),對多組天貓銷售數(shù)據(jù)進(jìn)行預(yù)測,對比未改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)等其他算法的預(yù)測結(jié)果,實(shí)驗(yàn)表明改進(jìn)后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測準(zhǔn)確性更高,預(yù)測性能也更穩(wěn)定。文獻(xiàn)[6]針對淡旺季特性產(chǎn)品的銷售特點(diǎn),對神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn)。文章用蘇州某快速消費(fèi)品公司某段時(shí)間內(nèi)的真實(shí)銷售數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),結(jié)果表明文章中提出的改進(jìn)方法可大幅預(yù)測精度。就社會基礎(chǔ)設(shè)施產(chǎn)品銷售行業(yè)而言,文獻(xiàn)[2]統(tǒng)計(jì)江蘇安華警用裝備制造有限公司2000年~2011年警用手銬的銷售情況,并以此為實(shí)驗(yàn)數(shù)據(jù),利用BP神經(jīng)網(wǎng)絡(luò)對2012年的警用手銬銷售情況進(jìn)行預(yù)測和仿真,結(jié)果表明神經(jīng)網(wǎng)絡(luò)可較好地應(yīng)用于企業(yè)銷售預(yù)測,為銷售預(yù)測提供了新思路。就服務(wù)產(chǎn)品銷售行業(yè)而言,文獻(xiàn)[7]提出一種自適應(yīng)和聲算法與遺傳算法混合優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的算法,文章用某城市的11個(gè)機(jī)票代售點(diǎn)200天的機(jī)票銷售量為實(shí)驗(yàn)樣本,用和聲算法、遺傳算法、和聲與遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)以及傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)分別建立模型,對第200天的機(jī)票銷售量進(jìn)行預(yù)測。實(shí)驗(yàn)結(jié)果表明文章提出的自適應(yīng)和聲算法與遺傳算法混合優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型具有更好的預(yù)測準(zhǔn)確性。文獻(xiàn)[8]將人工神經(jīng)網(wǎng)絡(luò)應(yīng)用于股票市場預(yù)測,并用某證券交易所在2009年~2014年間的SNP股票的相關(guān)數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),實(shí)驗(yàn)結(jié)果表明人工神經(jīng)網(wǎng)絡(luò)可較好地預(yù)測相關(guān)數(shù)據(jù),具備解決此類預(yù)測問題的潛力。就科學(xué)研究行業(yè)而言,文獻(xiàn)[9]針對復(fù)雜巖溶地區(qū)的溶洞發(fā)育規(guī)模具有的高度復(fù)雜性和非線性等特征,利用BP神經(jīng)網(wǎng)絡(luò)對溶洞發(fā)育規(guī)模的預(yù)測。文章用已探明溶洞的樣本數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),實(shí)驗(yàn)結(jié)果表明BP神經(jīng)網(wǎng)絡(luò)模型在溶洞規(guī)模預(yù)測方面具有較高的精度和較好的收斂性能。
這些研究表明,對于屬性較多且各屬性之間相互影響的數(shù)據(jù),時(shí)間序列預(yù)測法等線性或非線性函數(shù)無法實(shí)現(xiàn)較好的預(yù)測精準(zhǔn)度。而人工神經(jīng)網(wǎng)絡(luò)則在各行業(yè)中均有較好的處理結(jié)果。因此,針對數(shù)據(jù)特征較為復(fù)雜的、包含信息量較大、受影響因素較少的工業(yè)供應(yīng)鏈銷售數(shù)據(jù),本文采用人工神經(jīng)網(wǎng)絡(luò)進(jìn)行處理預(yù)測。
本文使用的數(shù)據(jù)集為加拿大機(jī)電產(chǎn)品銷售公司的實(shí)際銷售數(shù)據(jù),脫敏后保留418282條原始數(shù)據(jù)作為實(shí)驗(yàn)標(biāo)準(zhǔn)數(shù)據(jù)集。
3.2.1 數(shù)據(jù)分析
本研究中使用的數(shù)據(jù)集的屬性是‘RFQ’,‘ACCT’,‘Coverage’,‘SKU’,‘SKU_Category’,‘EB_Flag’,‘RFQ_TYPE’,‘List_Price’,‘RFQ_Price’,RFQ_Qty,‘Order_Qty’。
3.2.2 數(shù)據(jù)清洗
實(shí)現(xiàn)對數(shù)據(jù)重新審查和校驗(yàn),目的是消除噪聲數(shù)據(jù)。具體步驟如下。
1)查看數(shù)據(jù)集中是否含有缺省值,并估算均值或中位數(shù)填充。
2)校驗(yàn)數(shù)據(jù)集中是否有極大值或異常值,并估算均值或中位數(shù)替代。
表1為經(jīng)過清洗后的數(shù)據(jù)集的屬性集合。
3.2.3 數(shù)據(jù)轉(zhuǎn)化
在對數(shù)據(jù)分析與清洗的基礎(chǔ)上,本文針對人工神經(jīng)網(wǎng)絡(luò)的輸入值特點(diǎn),對實(shí)驗(yàn)數(shù)據(jù)集進(jìn)行轉(zhuǎn)化。具體轉(zhuǎn)化過程:分別提取RFQ、ACCT、SKU和SKU_Category中的前5個(gè)數(shù)量最大的值,進(jìn)行One-Hot Encode(獨(dú)熱編碼)處理;提取Coverage、EB_Flag、RFQ_TYPE的值,進(jìn)行One-Hot Encode(獨(dú)熱編碼)處理;List_Price、RFQ_Price、RFQ_Qty、Order_Qty按照(x-min)/(max-min)的公式歸一化處理。
3.2.4 數(shù)據(jù)集成
上述數(shù)據(jù)處理過程一致化數(shù)據(jù)集中不兼容的不同屬性,數(shù)據(jù)集成將數(shù)據(jù)合并,并存放到一個(gè)一致的數(shù)據(jù)存儲中,作為模型的輸入。
隨機(jī)選取存儲數(shù)據(jù)的50%為訓(xùn)練數(shù)據(jù)集,30%為驗(yàn)證數(shù)據(jù)集,20%為測試數(shù)據(jù)集。
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network)中的層包括輸入層、隱藏層與輸出層[10]。其中,輸入層只從外部環(huán)境接收信息,由可接收樣本中各種不同特征信息的輸入單元組成。輸入層中的每個(gè)神經(jīng)元相當(dāng)于自變量,不完成任何計(jì)算,負(fù)責(zé)為下一層傳遞信息;隱藏層介于輸入層和輸出層之間,負(fù)責(zé)計(jì)算分析數(shù)據(jù),該層的函數(shù)聯(lián)系輸入層變量和輸出層變量,使其更配適數(shù)據(jù)。輸出層生成最終結(jié)果,每個(gè)輸出單元對應(yīng)某一種特定的分類,將結(jié)果值傳送給外部系統(tǒng)。整個(gè)網(wǎng)絡(luò)由調(diào)整鏈接強(qiáng)度的程序來達(dá)成學(xué)習(xí)目的。
3.3.1 具有旨在實(shí)現(xiàn)工業(yè)供應(yīng)鏈銷售預(yù)測的外部輸入的人工神經(jīng)網(wǎng)絡(luò)的構(gòu)造
第一層為輸入層,第二層隱含層包含512個(gè)神經(jīng)元,第三層包含256個(gè)神經(jīng)元,第四層包含一個(gè)神經(jīng)元,為輸出層,第二層與第三層采用了relu激活函數(shù),最后一層采用了sigmoid激活函數(shù),前二層均采用dropout正則化技術(shù),輸入訓(xùn)練數(shù)據(jù)對人工神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在訓(xùn)練過程中隨機(jī)地忽略一些神經(jīng)元。
3.3.2 具有旨在實(shí)現(xiàn)工業(yè)供應(yīng)鏈銷售預(yù)測的外部輸入的人工神經(jīng)網(wǎng)絡(luò)的過程
1)模型輸入
根據(jù)上述對數(shù)據(jù)的預(yù)處理結(jié)果,構(gòu)建模型輸入向量Xmxn,m代表輸入樣本個(gè)數(shù),n代表屬性個(gè)數(shù)。
2)模型建造
本模型用式(1)作為假設(shè)函數(shù)。
其中,h(θ)表示模型產(chǎn)生的輸出,維度是mx1.X為輸入向量,可以是模型輸入的任意一行。θ是代表模型中神經(jīng)元的權(quán)重和偏差的向量集合,維度是nx1。
本模型用式(2)作為成本函數(shù),用于計(jì)算模型輸出向量與期望的輸出值向量間的誤差。
其中,Y代表樣本的期望輸出,表示輸入數(shù)據(jù)中的真實(shí)成交情況,維度為mx1。
3)參數(shù)初始化
θ向量初始化為(0,1)范圍內(nèi)的任意值。算法終止距離初始為ε。步長為α。
4)模型訓(xùn)練
(1)確定當(dāng)前位置的損失函數(shù)的梯度,對于θ向量其梯度表達(dá)式為式(3)。
(2)用步長乘以損失函數(shù)的梯度,得到當(dāng)前位置下降的距離,即
(3)確定θ向量里面的每個(gè)值,梯度下降的距離都小于ε,如果是則算法終止,當(dāng)前θ向量即為最終結(jié)果。否則進(jìn)入步驟(4)。
(4)更新θ向量。模型的訓(xùn)練就是誤差J不斷被返回網(wǎng)絡(luò),向量θ相應(yīng)地被更新的過程,其更新表達(dá)式如式(4)所示,更新完畢后返回步驟(1)。
本文采用訓(xùn)練集對模型的權(quán)重等參數(shù)訓(xùn)練,驗(yàn)證集對模型參數(shù)校正。
本文采用的數(shù)據(jù)集是某工業(yè)產(chǎn)品銷售公司的真實(shí)銷售數(shù)據(jù)。為更好地評估改進(jìn)后人工神經(jīng)網(wǎng)絡(luò)的預(yù)測性能,本文進(jìn)行了如圖1~7的各項(xiàng)實(shí)驗(yàn)。其中包括混淆矩陣(Confusion Matrix)[11]和Roc(Re?ceiver Operating Characteristic)曲線[12],并基于各圖從準(zhǔn)確率(Precision)[13]、召回率(Recall)[13]和F值(F-measure)[14]三個(gè)指標(biāo)進(jìn)一步進(jìn)行性能評估,結(jié)果如表2所示。
本文的原始模型輸入為數(shù)據(jù)預(yù)處理后的輸入向量Xmx11,經(jīng)原始模型計(jì)算后,得到如圖1,圖3所示的混淆矩陣與roc曲線,并依據(jù)此計(jì)算準(zhǔn)確率、召回率及F值如表2所示,三個(gè)評估指標(biāo)均不理想。故對模型改進(jìn),在進(jìn)一步分析數(shù)據(jù)屬性的基礎(chǔ)上,增加‘List_PriceXRFQ_Qty’屬性至模型輸入向量X,得到如圖2,圖4所示的混淆矩陣與roc曲線,計(jì)算準(zhǔn)確率、召回率及F值如表2所示。
圖1 原始人工神經(jīng)網(wǎng)絡(luò)混淆矩陣圖
圖2 改進(jìn)后的人工神經(jīng)網(wǎng)絡(luò)混淆矩陣圖
圖3 原始人工神經(jīng)網(wǎng)絡(luò)roc曲線圖
圖4 改進(jìn)后的人工神經(jīng)網(wǎng)絡(luò)roc曲線圖
表2 四個(gè)模型的P值、R值和F值
從混淆矩陣與roc曲線來看,改進(jìn)過的模型的預(yù)測值與真實(shí)類別相同的比率較原始人工神經(jīng)網(wǎng)絡(luò)要高,預(yù)測值與真實(shí)類別不同的比率則低于原始模型。該結(jié)果表明,改進(jìn)后模型的預(yù)測性能優(yōu)于原始模型。結(jié)合三個(gè)評估指標(biāo),改進(jìn)過的模型的準(zhǔn)確率、召回率與F值均高于原始模型。該結(jié)果表明,改進(jìn)后的模型的預(yù)測性能優(yōu)于原始模型。
卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network)[15]較人工神經(jīng)網(wǎng)絡(luò)復(fù)雜先進(jìn),常用于處理文本、語音、圖像等數(shù)據(jù)。本文采用卷積神經(jīng)網(wǎng)絡(luò)對相同數(shù)據(jù)集進(jìn)行銷售預(yù)測,并繪制混淆矩陣與roc曲線,如圖5、圖6所示。對比圖1和圖2、圖3和圖4,改進(jìn)過的人工神經(jīng)網(wǎng)絡(luò)的預(yù)測值與真實(shí)類別相同的比率較卷積神經(jīng)網(wǎng)絡(luò)要高,預(yù)測值與真實(shí)類別不同的比率則低于卷積神經(jīng)網(wǎng)絡(luò)。該結(jié)果表明,改進(jìn)過的人工神經(jīng)網(wǎng)絡(luò)的預(yù)測性能優(yōu)于卷積神經(jīng)網(wǎng)絡(luò)。結(jié)合表2中數(shù)據(jù),改進(jìn)過的人工神經(jīng)網(wǎng)絡(luò)在準(zhǔn)確率、召回率與F值三個(gè)指標(biāo)上均高于卷積神經(jīng)網(wǎng)絡(luò)。該結(jié)果表明,改進(jìn)后的人工神經(jīng)網(wǎng)絡(luò)的預(yù)測性能優(yōu)于卷積神經(jīng)網(wǎng)絡(luò)。
圖5 卷積神經(jīng)網(wǎng)絡(luò)混淆矩陣圖
圖6 卷積神經(jīng)網(wǎng)絡(luò)roc曲線圖
高斯混合模型(Gaussian mixture model)[16]是多個(gè)單高斯混合模型的混合,理論上可以擬合任意分布的樣本,因此常被應(yīng)用于預(yù)測問題中。本論文的實(shí)驗(yàn)數(shù)據(jù)較為復(fù)雜,特征數(shù)較多且數(shù)據(jù)分布不服從單一高斯分布,適合采用高斯混合模型計(jì)算分析。如圖7所示,本文通過對高斯混合模型在不同聚類簇?cái)?shù)下準(zhǔn)確率、召回率和F值三個(gè)指標(biāo)的對比,得到聚類簇?cái)?shù)為7時(shí),三個(gè)指標(biāo)值最大,分別為0.71716、0.96972、0.82453。結(jié)合表2中數(shù)據(jù),改進(jìn)后的人工神經(jīng)網(wǎng)絡(luò)在準(zhǔn)確率、召回率與F值三個(gè)指標(biāo)上均高于高斯混合模型。該結(jié)果表明,改進(jìn)后的人工神經(jīng)網(wǎng)絡(luò)的預(yù)測性能優(yōu)于高斯混合模型。
圖7 不同聚類簇下的準(zhǔn)確率、召回率、F值圖
本文提出了一種基于人工神經(jīng)網(wǎng)絡(luò)模型的工業(yè)供應(yīng)鏈銷售預(yù)測方法。首先分析工業(yè)銷售系統(tǒng)原始數(shù)據(jù)的屬性,針對不同數(shù)據(jù)類型的屬性進(jìn)行處理,然后將數(shù)據(jù)集連接整合,作為模型的輸入。接著,分別利用訓(xùn)練集和驗(yàn)證集數(shù)據(jù)對模型參數(shù)進(jìn)行計(jì)算和校驗(yàn)。最后,測試數(shù)據(jù)集完成對模型的測試評估,實(shí)現(xiàn)銷售預(yù)測功能。本文將改進(jìn)后的人工神經(jīng)網(wǎng)絡(luò)與未改進(jìn)的人工神經(jīng)網(wǎng)絡(luò)、較先進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)、高斯混合模型以及銷售公司的銷售數(shù)據(jù)作比較進(jìn)行對比,實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的人工神經(jīng)網(wǎng)絡(luò)能較好地預(yù)測銷售成交情況。