宋 頌,董寶力
(浙江理工大學 機械與自動控制學院,浙江 杭州 310018)
銷售預測用于指導企業(yè)計劃部門下達滾動計劃和生產計劃,采購部門依據(jù)滾動計劃對原材料供應商提出要求,生產部門依據(jù)生產計劃來組織生產.因此,準確的銷售預測對企業(yè)十分重要.飲料產品生命周期短,企業(yè)主要根據(jù)預測的產品銷售量采購原材料并安排生產,如果預測的結果與實際情況差異過大,就會導致企業(yè)的產品交期延遲、生產計劃變動、庫存增加等問題.
常用的銷售預測方法包括時間序列預測法、指數(shù)平滑法、線性回歸法等.這些方法在各種行業(yè)均有所應用,但這些方法的缺陷是只能應用于線性數(shù)據(jù),難以應用在多因素的非線性數(shù)據(jù)上.飲料銷售預測建模受多因素影響,如室外平均溫度、季節(jié)指數(shù)、節(jié)假日數(shù)、人均消費水平、促銷活動次數(shù)等.人工神經網(wǎng)絡對于受多因素影響的預測有較好的效果.劉衛(wèi)校運用多維灰色模型對影響因素進行處理,并結合神經網(wǎng)絡建立了銷售預測模型[1].劉振華等針對多種因素影響的溶洞發(fā)育規(guī)模,運用BP神經網(wǎng)絡進行了預測[2].王新普等提出一種改進灰色預測方法,對BP神經網(wǎng)絡進行優(yōu)化[3].Wang X等提出一種混合多群體遺傳算法——反向傳播神經網(wǎng)絡算法,并建立了預測模型[4].Liu X L等運用灰色預測方法并結合神經網(wǎng)絡建立了預測模型[5].Gomes L F A M等研究了3種時間序列和神經網(wǎng)絡相結合的預測方法[6].陳志禮等采用遺傳算法和核密度估計法改進BP神經網(wǎng)絡建立了預測模型[7].Du W等采用一種多目標進化算法對神經網(wǎng)絡的權重進行優(yōu)化,建立了預測模型[8].張金夢等運用遺傳算法對BP神經網(wǎng)絡權值和閾值進行優(yōu)化,并建立了預測模型[9].肖成等對小波BP神經網(wǎng)絡進行訓練,并用MATLAB軟件進行了仿真預測[10].上述研究只針對算法本身進行改進,對輸入神經網(wǎng)絡的數(shù)據(jù)未預先處理或僅進行縱向處理,模型輸入的數(shù)據(jù)中仍存在冗余,而這些冗余數(shù)據(jù)會對BP神經網(wǎng)絡的辨識和預測能力產生較大的不良影響,降低BP神經網(wǎng)絡的訓練速度和泛化能力.
影響預測的因素既有線性的又有非線性的.本文采用灰色關聯(lián)分析、粗糙集屬性約簡對影響因素進行橫向和縱向雙維度數(shù)據(jù)處理,以來提高BP神經網(wǎng)絡的訓練速度和泛化能力;通過附加動量項、優(yōu)化誤差函數(shù)提高BP神經網(wǎng)絡的學習收斂速度,以避免誤差局部極小值的出現(xiàn),提高預測的精度;并運用改進BP神經網(wǎng)絡模型對某飲料企業(yè)銷售歷史數(shù)據(jù)進行實例驗證.
BP神經網(wǎng)絡的輸入數(shù)據(jù)存在冗余,算法學習收斂的速度低,誤差存在局部極小值.針對這些問題,可構建一個由灰色粗糙集與BP神經網(wǎng)絡結合的飲料銷售預測模型.灰色關聯(lián)分析和粗糙集屬性約簡可以處理飲料銷售預測影響因素中節(jié)假日數(shù)、促銷活動次數(shù)等非線性、不完整的數(shù)據(jù),提高輸入數(shù)據(jù)的有效性和神經網(wǎng)絡的訓練速度.通過附加動量項可提高BP神經網(wǎng)絡的學習收斂速度,優(yōu)化誤差函數(shù)可避免誤差局部極小值的出現(xiàn).模型構建流程如圖1所示.
圖1 模型構建流程
(1) 收集飲料銷售歷史數(shù)據(jù)F和影響因素數(shù)據(jù)(包括室外平均氣溫A、消費指數(shù)B、促銷活動次數(shù)C、節(jié)假日數(shù)D、季節(jié)指數(shù)E),構建二維決策表.季節(jié)指數(shù)計算公式如下:
E=G/H
(1)
式中:G為各年同季銷售量平均值;H為同年各季銷售量平均值.
(2) 對行數(shù)據(jù)進行灰色關聯(lián)分析,計算并比較每月數(shù)據(jù)的灰色關聯(lián)系數(shù)ζi(g),剔除無效月數(shù)據(jù).g為數(shù)據(jù)月份總數(shù).
(3) 對列數(shù)據(jù)進行粗糙集屬性約簡,離散化處理,分析二維決策表生成的分辨矩陣M(s),計算分辨函數(shù),得出最小析取范式,并剔除冗余因素.
(4) 通過優(yōu)化誤差函數(shù)、附加動量項來提高BP神經網(wǎng)絡的學習收斂速度,將灰色粗糙集處理過的二維決策表輸入神經網(wǎng)絡,得到預測結果.
(5) 對該模型預測與BP神經網(wǎng)絡模型預測、線性回歸分析預測的結果進行比較.均方誤差(Mean-Square Error,MSE)的計算公式如下:
(2)
式中:yn為預測值;tn為實際值.
飲料銷售預測中節(jié)假日數(shù)、促銷活動次數(shù)等為非線性數(shù)據(jù),數(shù)據(jù)特征表現(xiàn)為決策多目標、判定標準不明確等.針對這些特點,可運用灰色關聯(lián)分析對飲料銷售預測數(shù)據(jù)進行前期處理,計算不同因素之間的灰色關聯(lián)系數(shù),將各因素按照灰色關聯(lián)系數(shù)的大小進行排列,剔除關聯(lián)系數(shù)小、冗余的月數(shù)據(jù),實現(xiàn)二維決策表的橫向處理.
(1) 收集飲料銷售歷史數(shù)據(jù)和影響因素數(shù)據(jù).由平均氣溫A、消費指數(shù)B、促銷活動次數(shù)C、節(jié)假日數(shù)D、季節(jié)指數(shù)E、銷售數(shù)據(jù)F構建二維決策表.
(2) 確定參考數(shù)據(jù)列.參考數(shù)據(jù)列是一個理想的比較標準,由各指標的最優(yōu)值或最劣值構成,且可根據(jù)評價指標來選擇參考值.本文以最優(yōu)值為參考值,可記作:
X0=(X11,X21,X31,X41,X51,X61)
(3)
式中:X0為元素集合;Xnm為各屬性元素.
(3) 對數(shù)據(jù)進行無量綱化處理.影響因素的性質不同,使得數(shù)據(jù)的量綱也不同,為了結論具有可比性,需在灰色關聯(lián)分析時對數(shù)據(jù)進行無量綱化處理.本文運用均值化法進行數(shù)據(jù)的無量綱化處理.無量綱化的數(shù)據(jù)表可形成如下矩陣:
(4)
(5) 計算關聯(lián)系數(shù)和關聯(lián)序.關聯(lián)系數(shù)計算公式如下:
ζi(g)=
(n=1,2,…,n;m=1,2,…,m) (5)
式中:θ為分辨系數(shù).
對各行數(shù)據(jù)的關聯(lián)系數(shù)進行排序,排列好的順序為關聯(lián)序.根據(jù)關聯(lián)序比較各月份關聯(lián)系數(shù)的大小,剔除冗余數(shù)據(jù).
冗余數(shù)據(jù)會影響B(tài)P神經網(wǎng)絡預測的準確性,導致預測誤差增大.飲料銷售預測影響因素中促銷活動次數(shù)、室外平均氣溫等呈現(xiàn)高度非線性和不確定性變化.針對影響因素的特點,本文對粗糙集進行了屬性約簡.粗糙集屬性約簡可以克服模型受主觀因素影響過大的缺點.基于屬性依賴性、區(qū)分矩陣、區(qū)分函數(shù)、約簡、核等概念,對BP神經網(wǎng)絡的輸入數(shù)據(jù)進行預處理,去除冗余屬性,可簡化BP神經網(wǎng)絡的網(wǎng)絡結構,提高訓練速度.采用分辨矩陣法對飲料銷售的影響因素進行屬性約簡,能夠實現(xiàn)二維決策表的縱向處理.
(1) 由二維決策表計算分辨矩陣M(s)即
(Xnm)n×n).這里:
n,m=1,2,…,N
(6)
式中:a為屬性;C為條件屬性集.
(2) 計算核Core(R)的公式如下:
Core(R)=∧{Xnm|Xnm≠Φ且Xnm=at,at∈C,
1≤t≤m,n=2,3,…,N;m=1,2,…,n-1}
(7)
(3) 生成分辨函數(shù),即:
f(a1,a2,…,am)=∧{∨a|a∈Xnm,
其中Xnm≠φ,n=2,3,…,N;m=1,2,…,n-1}
(8)
構建分辨函數(shù),即:
F=a1∧(a1∨a2)∧(a1∨a2∨a3)∧…∧(a1∨a2∨…an)
(9)
(4) 求解分辨函數(shù)的最小析取范式.
分辨矩陣M(s)中元素Xnm,是能夠區(qū)分所有屬性的集合.當決策屬性相同時,分辨矩陣中元素Xnm的取值為空集.分辨矩陣是一個主對角線對稱的n階方陣,在計算分辨矩陣時,只考慮上半角或下半角即可.分辨矩陣對應的唯一分辨函數(shù)f(am)是一個具有m元變量a1,a2,…,am的布爾函數(shù).它是(∨Xnm)的和取,(∨Xnm)是矩陣項Xnm各元素的析取.分辨函數(shù)的析取范式中每個和取對應一個約簡,核為分辨矩陣中所有單元素組成的集合,即約簡后的影響因素項.
BP神經網(wǎng)絡算法學習過程的收斂速度較低,且誤差容易陷入局部極小值誤區(qū).結合飲料銷售預測的特點,本文通過設定誤差函數(shù)、附加動量項對BP神經網(wǎng)絡算法進行了優(yōu)化改進.傳統(tǒng)BP神經網(wǎng)絡因未考慮誤差函數(shù)的高次項而容易出現(xiàn)局部極小值.優(yōu)化誤差函數(shù)后BP神經網(wǎng)絡能夠根據(jù)預測值與實際值的誤差來動態(tài)調整學習率,提高學習速度,從而避免局部極小值的出現(xiàn).優(yōu)化誤差函數(shù)為:
(10)
式中:δnm為等效誤差分量.
BP神經網(wǎng)絡訓練時,權值變化過快會影響其學習收斂速度.采用附加動量項的方法,可將上次誤差計算中權值調整量的一部分疊加至本次誤差計算的權值調整量上,從而減小學習過程的震蕩,改善收斂性能,提高收斂速度.附加動量項為:
Δwi j(k+1)=(1-mc)p▽f(wi j(k))+mcΔwi j(k)
(11)
式中:p為學習速率;k為訓練次數(shù);mc為動量因子;▽f(wi j(k))為誤差函數(shù)的梯度;wi j為權值.
建立BP神經網(wǎng)絡模型時,選用一個隱含層就可滿足該飲料銷售預測模型的數(shù)據(jù)精度要求[11].BP神經網(wǎng)絡模型的結構包括輸入層、隱含層和輸出層.其中,輸入層是經過灰色粗糙集屬性約簡的飲料銷售影響因素的數(shù)據(jù),輸出層即銷售數(shù)據(jù).
隱含層神經元個數(shù)為:
(12)
式中:b為輸入層影響因素節(jié)點數(shù);c為輸出層銷售數(shù)據(jù)節(jié)點數(shù);h為1~10之間的常數(shù).
(1) 導入BP神經網(wǎng)絡數(shù)據(jù).以灰色關聯(lián)分析和粗糙集屬性約簡后的二維決策表作為輸入數(shù)據(jù),導入模型.
(2) 將約簡后飲料銷售的歷史數(shù)據(jù)分為訓練集和測試集(以銷售歷史的前期多組數(shù)據(jù)作為訓練集,剩余數(shù)據(jù)作為測試集,可驗證預測的準確性),并對數(shù)據(jù)進行歸一化處理.
(3) 確定BP神經網(wǎng)絡的訓練參數(shù)、迭代次數(shù)、學習率和目標值.
(4) 設定誤差函數(shù),附加動量項.
(5) 確定BP神經網(wǎng)絡模型的隱含層節(jié)點數(shù),并選擇傳遞函數(shù)和訓練函數(shù).輸入層到隱含層的傳遞函數(shù)為雙曲正切tanh函數(shù).該函數(shù)的特點在于它能夠將區(qū)間(-∞,+∞)的數(shù)據(jù)映射到區(qū)間(0,1)內.隱含層至輸出層的傳遞函數(shù)為purelin線性函數(shù).該函數(shù)使整個網(wǎng)絡的輸出為任意值。訓練函數(shù)采用梯度下降算法(該算法具有自適應學習能力),可提高預測結果的穩(wěn)定性和精度。本文所用traingdx訓練函數(shù)的自適應學習速率公式為:
(13)
按照飲料行業(yè)銷售情況統(tǒng)計慣例,將公歷劃分為四季:第一季為3~5月,第二季為6~8月,第三季為9~11月,第四季為12~2月.某飲料企業(yè)2015~2017年的歷史銷售數(shù)據(jù)及季節(jié)指數(shù)如表1所示.
表1 某飲料企業(yè)2015~2017年的歷史銷售數(shù)據(jù)及季節(jié)指數(shù)
首先計算各年同季銷售量平均值G和同年各季銷售量平均值H,然后運用式(1)計算季節(jié)指數(shù)E.以計算的季節(jié)指數(shù)E以及所選銷售地區(qū)2015~2018年各月份的室外平均溫度A、消費指數(shù)B、促銷活動數(shù)C、節(jié)假日數(shù)D作為影響因素,結合歷史銷售數(shù)據(jù)F可構建二維決策表(表2).對表2進行灰色關聯(lián)分析,并用均值化法對其數(shù)據(jù)進行無量綱化處理,以最優(yōu)值序列作為參考序列,通過式(5)計算灰色關聯(lián)系數(shù)并進行排序(表3).
表2 二維決策表
表3 灰色關聯(lián)系數(shù)排序結果
由表3可知,15/03、16/12、17/03、17/12這幾個月份對應的灰色關聯(lián)系數(shù)較小,無法有效反映銷售預測影響因素的決策性,相應數(shù)據(jù)應作為冗余數(shù)據(jù)被剔除.
灰色關聯(lián)分析后剔除冗余數(shù)據(jù),對留下34個月份的數(shù)據(jù)進行粗糙集屬性約簡.首先對連續(xù)數(shù)據(jù)進行離散化處理,對離散化后二維決策表采用分辨矩陣法約簡,然后根據(jù)式(6)計算分辨矩陣.所得部分分辨矩陣如圖2所示.
序號X1X2X3X4X5X6X7X8X9X10X11X12X1X2X3X4ABEABEACX5ABEABEACX6ABCEABCEAEACECEX7ABDEABDEACDEADEADEACDX8ABDEABDEACDEADEADEACDX9ABCEABCEAEACECEACDEACDEX10ABEABEACEAEEADEADEX11ABDEABDEACDEACDEAEAEACDADX12ABDEABDEABCDEABEABEABCDEABDEABE
圖2部分分辨矩陣
在分辨矩陣的基礎上,依據(jù)式(8)可生成如下分辨函數(shù):
(A∨B∨E)∧(A∨B∨E)∧(A∨C)∧(A∨B∨E)∧…∧(B∨C∨D∨E)∧(A∨B∨C∨E)=D∨E∨B∨A.
由分辨函數(shù)得到的最優(yōu)約簡結果為室外平均溫度、消費指數(shù)、節(jié)假日數(shù)、季節(jié)指數(shù).將灰色關聯(lián)分析橫向約簡和粗糙集屬性縱向約簡后數(shù)據(jù)作為改進BP神經網(wǎng)絡的學習數(shù)據(jù),可得表4所示的約簡后二維決策表.
表4 約簡后二維決策表
以表4中4個影響因素作為輸入神經元,根據(jù)式(12)選取6個神經元個數(shù)的隱含層,并將表4中前30組數(shù)據(jù)作為訓練數(shù)據(jù),后4組數(shù)據(jù)作為驗證數(shù)據(jù).根據(jù)式(10)設定優(yōu)化誤差函數(shù),并按式(11)計算附加動量項.本文采用的飲料銷售預測模型中,改進BP神經網(wǎng)絡訓練函數(shù)的參數(shù)設定如下:學習速率為0.001,迭代次數(shù)為1 000次,目標值為0.001.基于改進BP神經網(wǎng)絡進行飲料銷售預測的結果如圖3所示.
圖3 基于改進BP神經網(wǎng)絡進行飲料銷售預測的結果
針對預測結果,運用式(2)計算預測值和實際值的均方誤差,可得MSE=0.019 3.本文預測模型(灰色粗糙集BP神經網(wǎng)絡)、傳統(tǒng)BP神經網(wǎng)絡、線性回歸分析3種預測方法的預測結果比較如表5所示.
灰色粗糙集BP神經網(wǎng)絡的訓練速度為8 s,而未經灰色粗糙集處理的BP神經網(wǎng)絡的訓練速度為10 s;灰色粗糙集BP神經網(wǎng)絡預測結果的均方誤差為0.019 3,顯著小于傳統(tǒng)BP神經網(wǎng)絡預測結果的均方誤差0.141 9和線性回歸分析預測結果的均方誤差0.184 5.因此,相比未經前期數(shù)據(jù)處理的BP神經網(wǎng)絡預測和線性回歸分析預測,采用灰色粗糙集BP神經網(wǎng)絡預測模型對飲料銷售預測的精度更高,準確性更好.
表5 本文預測模型、傳統(tǒng)BP神經網(wǎng)絡、線性回歸預測結果的比較 10萬箱
本文運用灰色粗糙集BP神經網(wǎng)絡預測模型對飲料銷售進行了預測.針對飲料銷售預測影響因素的非線性和不完整性,運用灰色粗糙集從橫向和縱向兩個維度對二維決策表進行預處理,以提高神經網(wǎng)絡的訓練速度和泛化能力。同時,對BP神經網(wǎng)絡進行優(yōu)化誤差函數(shù)并附加動量項,以提高BP神經網(wǎng)絡的學習收斂速度、減小預測誤差。對某飲料企業(yè)歷史銷售數(shù)據(jù)進行的仿真表明:灰色粗糙集BP神經網(wǎng)絡模型對于飲料銷售預測具有較高的預測精度.