張偉豐,魏仁干,楊麗華
(湖北汽車工業(yè)學(xué)院 經(jīng)濟(jì)管理學(xué)院,湖北十堰442002)
煙草公司在區(qū)域煙草營銷中存在著超出限量供貨或供貨量不足、價格管理不到位的問題,影響市場價格的穩(wěn)定和零售客戶的滿意度,同時各營銷區(qū)域和各個品類卷煙的市場需求量和市場價格受諸多方面因素的影響,給市場的調(diào)控帶來了困難。本文以價格波動為切入點,提取不同供貨周期里各銷售區(qū)域里的平均零售價格和實際銷售量,建立供貨量的分時段預(yù)測模型,采用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測。通過對下一周期供貨量的預(yù)測,找到比較切合實際的市場供需狀況,進(jìn)而實現(xiàn)相對精準(zhǔn)的貨源投放。
卷煙貨源投放量預(yù)測除了采用常規(guī)的建立輸入和輸出變量之間的線性關(guān)系外,也可采用建立人神經(jīng)網(wǎng)絡(luò)的非線性方法。由于神經(jīng)網(wǎng)絡(luò)具有通過學(xué)習(xí)逼近任意非線性映射的能力,可以很好的表達(dá)非線性系統(tǒng)的黑箱式輸入輸出模型,將神經(jīng)網(wǎng)絡(luò)應(yīng)用于非線性系統(tǒng)的預(yù)測,不受非線性模型的限制,表現(xiàn)出了比常規(guī)方法明顯的優(yōu)越性。
BP神經(jīng)網(wǎng)絡(luò)包括輸入層、隱層和輸出層,信息由輸入層傳遞到隱層神經(jīng)元上,經(jīng)過各神經(jīng)元作用函數(shù)運算后由輸出層輸出,訓(xùn)練過程為正向和反向傳遞,輸入信息經(jīng)隱層傳遞至輸出層,若輸出結(jié)果與預(yù)期值有誤差,則將誤差信息沿網(wǎng)絡(luò)返回,修改網(wǎng)絡(luò)權(quán)值,重復(fù)此過程直到達(dá)到訓(xùn)練精度。BP算法的具體過程描述如下(三層網(wǎng)絡(luò)結(jié)構(gòu)):
設(shè)定學(xué)習(xí)次數(shù)初值t=0,用小的隨機(jī)數(shù)初始化網(wǎng)絡(luò)權(quán)值和閾值,Wij(t)?[-1,1],Wjk(t)?[-1,1],θj
(t)?[-1,1],θk(t)?[-1,1]。
1)輸入一個學(xué)習(xí)樣本(Xp,Tp),其中P?(1,2,…,N),N為樣本數(shù),(Xp?Rn,Tp?Rm)。
2)計算隱層各節(jié)點的輸出值
其作用函數(shù)為log-sigmoid型函數(shù)
3)計算輸出層各節(jié)點的輸出值
其作用函數(shù)為線性purelin 函數(shù)
4)計算輸出層節(jié)點和隱層節(jié)點之間連接權(quán)值的修正量
5)計算隱層節(jié)點和輸入層節(jié)點間連接權(quán)值的修正量
6)修正輸出層節(jié)點k和隱層節(jié)點j的連接權(quán)值Wjk,修正輸出層節(jié)點k的閾值,其中σk為第5)步中求出的誤差修正量
7)修正隱層節(jié)點j和輸入層節(jié)點i的連接權(quán)值Wji,修正隱層節(jié)點j的閾值,其中σj為6)中求出的誤差修正量
8)如果未取完全部學(xué)習(xí)樣本,則轉(zhuǎn)至第2)步。
9)計算誤差函數(shù)E,并判斷是否小于規(guī)定誤差上限,如果小于誤差上限或?qū)W習(xí)達(dá)到次數(shù)限制,則算法結(jié)束;否則更新學(xué)習(xí)次數(shù)(t=t+1),返回第2)步。
在一定時期內(nèi),影響卷煙產(chǎn)品價格的因素很多,如貨源投放量,零售商數(shù)量,消費者可支配收入,消費者偏好等等,同時價格的變化一方面由未知的不確定因素引起的隨機(jī)波動,另一方面又具有隨時間變化的規(guī)律性,因此價格變化曲線是一個與很多因素相關(guān)的復(fù)雜的非線性函數(shù),由于神經(jīng)網(wǎng)絡(luò)具有較強的非線性映射特性,避免了預(yù)測的不準(zhǔn)確和數(shù)據(jù)的不穩(wěn)定。
在所有影響產(chǎn)品價格的因素中,貨源投放量是最敏感和最直接的因素。對于某一卷煙產(chǎn)品,以各營銷區(qū)域的一段時期的平均價格、實際銷售量的歷史統(tǒng)計數(shù)據(jù)作為訓(xùn)練樣本,通過神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,建立價和量之間的映射關(guān)系。
量價預(yù)測模型采用單隱層網(wǎng)絡(luò)結(jié)構(gòu),即分別為輸入層、隱層、輸出層,其中隱層神經(jīng)元作用函數(shù)為log-sigmoid 函數(shù)(Logsig),輸出層作用函數(shù)為線性函數(shù)(purelin)。根據(jù)BP神經(jīng)網(wǎng)絡(luò)量價預(yù)測的要求,確定網(wǎng)絡(luò)輸入和輸出單元數(shù),由于卷煙銷售分為7個營銷區(qū)域,以各區(qū)域的平均價格作為網(wǎng)絡(luò)的輸入變量,以各區(qū)域供貨周期內(nèi)的實際銷售量作為網(wǎng)絡(luò)的目標(biāo)變量,這樣輸入輸出變量均為7 維向量,根據(jù)Kolmogorov 定理,取隱層神經(jīng)元為12~20個。
為了對網(wǎng)絡(luò)進(jìn)行有效的訓(xùn)練,選取的樣本容量應(yīng)該足夠大,樣本過少使得網(wǎng)絡(luò)的表達(dá)不夠充分,導(dǎo)致網(wǎng)絡(luò)外推的能力不夠,同時樣本數(shù)量不宜過大,以避免過度訓(xùn)練狀態(tài),當(dāng)網(wǎng)絡(luò)進(jìn)入過度訓(xùn)練狀態(tài)時,驗證誤差會逐漸增大,增大到一定程度時,網(wǎng)絡(luò)訓(xùn)練就會提前停止,導(dǎo)致網(wǎng)絡(luò)預(yù)測精度下降,因此應(yīng)選取合適數(shù)量的訓(xùn)練樣本。煙草公司以半個月為供貨周期,選取2012年1~8月的16 組實際銷售數(shù)據(jù)作為訓(xùn)練樣本,以某一個卷煙產(chǎn)品(黃鶴樓(硬珍))銷售區(qū)域的銷售數(shù)據(jù)為例,整理后的樣本數(shù)據(jù)如表1所示,銷售區(qū)域為張灣、鄖西、房縣、竹山、丹江口、鄖縣、茅箭。
獲得輸入和輸出向量后,要對其進(jìn)行歸一化處理,將樣本數(shù)據(jù)轉(zhuǎn)換為區(qū)間[0,1]之間的數(shù)據(jù),對價格和銷量分別按式(1)進(jìn)行處理:
其中:x為某一供貨周期內(nèi)某個營銷區(qū)域的平均價或銷售量;xmax和xmin分別為各周期某營銷區(qū)域內(nèi)樣本的最大值和最小值。
網(wǎng)絡(luò)經(jīng)過訓(xùn)練后才可用于卷煙貨源投放量預(yù)測,考慮到網(wǎng)絡(luò)結(jié)構(gòu)比較復(fù)雜,神經(jīng)元個數(shù)比較多,需要適當(dāng)增大學(xué)習(xí)速率和訓(xùn)練次數(shù),對主要參數(shù)設(shè)置如下:訓(xùn)練次數(shù)1000,學(xué)習(xí)速率取0.1,訓(xùn)練精度為10-5,適當(dāng)增加隱層神經(jīng)元數(shù)量可以提高訓(xùn)練精度,但數(shù)量過多會增加網(wǎng)絡(luò)的訓(xùn)練負(fù)擔(dān),隱層神經(jīng)元個數(shù)選擇3個值,分別為12、16和20,并分別檢查網(wǎng)絡(luò)的性能,選擇性能最好的網(wǎng)絡(luò)進(jìn)行預(yù)測。
表1 訓(xùn)練樣本數(shù)據(jù)表
圖1 BP網(wǎng)絡(luò)訓(xùn)練誤差曲線
將表1的樣本數(shù)據(jù)歸一化處理后,用上述3種不同隱層單元數(shù)的BP網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到訓(xùn)練誤差曲線如圖1所示,通過比較發(fā)現(xiàn),隱層神經(jīng)元數(shù)過多或者過少都不利于網(wǎng)絡(luò)訓(xùn)練,隱層神經(jīng)元數(shù)為16時網(wǎng)絡(luò)的收斂速度比較快。
以隱層數(shù)為16的BP網(wǎng)絡(luò)作為預(yù)測模型,在完成網(wǎng)絡(luò)的訓(xùn)練后,選擇測試數(shù)據(jù)來評估網(wǎng)絡(luò)的預(yù)測性能,首先從訓(xùn)練樣本中選取一組數(shù)據(jù)作為測試數(shù)據(jù)檢驗網(wǎng)絡(luò)訓(xùn)練精度,預(yù)測的誤差曲線如圖2所示。
由圖2可見,網(wǎng)絡(luò)對訓(xùn)練樣本的預(yù)測誤差接近于0,說明網(wǎng)絡(luò)的訓(xùn)練精度非常的高,對每組訓(xùn)練樣本數(shù)據(jù)都精確的擬合了,可以用來對訓(xùn)練樣本以外的測試樣本來進(jìn)行預(yù)測。
選取2012年9月2個供貨周期內(nèi)的銷售數(shù)據(jù)作為測試樣本,首先對測試樣本的輸入向量進(jìn)行歸一化處理,然后計算網(wǎng)絡(luò)的輸出,將輸出值按式(2)進(jìn)行反歸一化,得到BP網(wǎng)絡(luò)預(yù)測值:
圖2 BP 訓(xùn)練樣本預(yù)測誤差曲線
將網(wǎng)絡(luò)預(yù)測值與實際值進(jìn)行比較,測試樣本和預(yù)測結(jié)果如表2所示。
表2中2個測試樣本的預(yù)測誤差曲線如圖3所示,網(wǎng)絡(luò)輸出值和實際值的絕對誤差值在±0.1以內(nèi),可以滿足應(yīng)用要求。對其輸出值反歸一化后,上述2個測試樣本的預(yù)測值和實際值的對比圖如圖4所示。
從對比圖可以看出,對這種卷煙產(chǎn)品用該模型預(yù)測的銷售量和實際銷售量擬合的較好,相對誤差均在3%以內(nèi),說明模型有比較高的預(yù)測精度,可以用于各營銷區(qū)域的卷煙產(chǎn)品投放量預(yù)測。
表2 測試樣本及預(yù)測結(jié)果
圖3 測試樣本預(yù)測誤差曲線
圖4 測試樣本預(yù)測值和實際值對比
通過選擇煙草公司各個營銷區(qū)域具有一定可靠性的樣本數(shù)據(jù),分析和確定了模型參數(shù),經(jīng)過樣本數(shù)據(jù)的訓(xùn)練,建立了卷煙投放量的BP網(wǎng)絡(luò)預(yù)測模型,測試結(jié)果表明有較好的預(yù)測準(zhǔn)確度。根據(jù)卷煙產(chǎn)品的平均價格,可以用該模型相對準(zhǔn)確的預(yù)測下一周期的產(chǎn)品實際需求量,以此為依據(jù)來控制各個營銷區(qū)域的貨源總投放量,經(jīng)過過一段時間的調(diào)整,可以較好的滿足市場需求,實現(xiàn)各類卷煙產(chǎn)品市場價格的穩(wěn)定。
[1]金保明.LMBP算法在閩江上游十里庵站洪水流量預(yù)測中的應(yīng)用[J].福州大學(xué)學(xué)報:自然科學(xué)版,2012,40(4):527-530.
[2]李善梅,徐肖豪,孟令航.基于聚類神經(jīng)網(wǎng)絡(luò)的機(jī)場擁擠等級預(yù)測[J].計算機(jī)工程與應(yīng)用,2012,32(6):160-165.
[3]向平,張蒙,等.基于BP神經(jīng)網(wǎng)絡(luò)的城市時用水量分時段預(yù)測模型[J].中南大學(xué)學(xué)報:自然科學(xué)版,2012,43(8):3320-3324.
[4]張月琴,劉翔,孫先洋.一種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法與應(yīng)用[J].計算機(jī)技術(shù)與發(fā)展,2012,22(8)∶163-166.
[5]熊興吾,孟茁超.基于時間序列與神經(jīng)網(wǎng)絡(luò)的軟巖隧道變形預(yù)測模型及其應(yīng)用[J].交通科學(xué)與工程,2012,28(2):53-60.
[6]魯明旭,葉銀忠,馬向華.神經(jīng)網(wǎng)絡(luò)在地鐵客流預(yù)測中的應(yīng)用[J].機(jī)械研究與應(yīng)用,2012,37(3):85-89.
[7]張偉豐.基于ID3算法的卷煙產(chǎn)品零售客戶分類研究[J].湖北汽車工業(yè)學(xué)院學(xué)報,2012,26(3):52-54+69.