王曉玲 楊姝
關(guān)鍵詞:預(yù)測模型;三次指數(shù)平滑預(yù)測;BP神經(jīng)網(wǎng)絡(luò)組合預(yù)測;灰色預(yù)測;多變量LSTM預(yù)測
中圖分類號:TP181 文獻標識碼:A
文章編號:1009-3044(2023)03-0022-04
1 概述
對未來銷售數(shù)據(jù)的精準預(yù)測是企業(yè)獲得競爭優(yōu)勢并實現(xiàn)目標的重要舉措,特別在新冠肺炎疫情全球蔓延背景下,企業(yè)對精準的銷售預(yù)測數(shù)據(jù)的期望變得尤為重要。怎么利用歷史銷售數(shù)據(jù)與當前形勢結(jié)合,預(yù)測未來的銷售量,以此應(yīng)對不斷變化的市場,從而提高企業(yè)自身的應(yīng)變能力。
現(xiàn)有預(yù)測模型都采用單一的三次指數(shù)平滑預(yù)測模型[1]、灰色預(yù)測模型[2]或多變量LSTM預(yù)測模型來預(yù)測未來的銷售數(shù)據(jù)[3],三種預(yù)測模型得到的預(yù)測結(jié)果會受到各自局限性的影響從而導(dǎo)致預(yù)測結(jié)果不夠精確,影響著銷售計劃的制定。針對單一預(yù)測模型存在的問題本文引入多模型融合的BP神經(jīng)網(wǎng)絡(luò)組合預(yù)測模型,該模型三種模型預(yù)測的結(jié)果送入BP神經(jīng)網(wǎng)絡(luò)組合預(yù)測模型中,從而得到三種預(yù)測模型的最佳組合的預(yù)測結(jié)果[4-5]。
2 模型的建立
基于多模型融合的BP神經(jīng)網(wǎng)絡(luò)組合預(yù)測模型[6]基于三次指數(shù)平滑預(yù)測模型、灰色預(yù)測模型和LSTM模型而建立的預(yù)測模型,即三種模型的輸出作為BP 神經(jīng)網(wǎng)絡(luò)組合預(yù)測模型的輸入而建立的預(yù)測模型,該模型的數(shù)據(jù)流程如圖1所示。
2) 網(wǎng)絡(luò)設(shè)計,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示:
xi為輸入特征值,ai為第一層隱含層輸出值,bi為第二層隱含層輸出值,yt為預(yù)測結(jié)果輸出值。將輸入x 與權(quán)重矩陣w結(jié)合,以wx + b 的形式作為隱含層的輸入,經(jīng)過激活函數(shù)f (x)處理,輸出結(jié)果a1, a2,an并作為第二層隱含函數(shù)的輸入,再通過正切函數(shù)的處理輸出b1, b2,bn然后與對應(yīng)的權(quán)重、偏置結(jié)合,作為輸入,經(jīng)過激活函數(shù),計算得到輸出結(jié)果。
3) 滾動預(yù)測:采用一次預(yù)測待測一月的銷量數(shù)據(jù),然后將預(yù)測銷量數(shù)據(jù)加入輸入值,再預(yù)測下一月的銷量數(shù)據(jù),依次類推。
4) 模型增量更新:為保證模型的時效性,采用3-6 個月的時間對模型進行更新,可以減少全部數(shù)據(jù)更新帶來系統(tǒng)巨大的開銷。
2.4 基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型建立
BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型將上述三種模型的輸出作為該模型的輸入,組合權(quán)重根據(jù)均方誤差最小的準則通過3層BP網(wǎng)絡(luò)學(xué)習(xí)與訓(xùn)練得到。網(wǎng)絡(luò)模型圖如下所示:
③ 采用滾動銷量預(yù)測方法,定期將前一段時間的歷史實際數(shù)據(jù)納入預(yù)測考量,來響應(yīng)市場對產(chǎn)品實際需求。即每月產(chǎn)生新的銷售數(shù)據(jù),就根據(jù)市場實際的銷售狀況,對未來的預(yù)測數(shù)據(jù)進行調(diào)整,不但提升預(yù)測準確率。
3 模型預(yù)測效果驗證
根據(jù)前面模型描述,采用Python 代碼實現(xiàn)基于Keras的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型,數(shù)據(jù)采用某藥店2017 年6月到2021年2月的數(shù)據(jù)作為訓(xùn)練基礎(chǔ),按月預(yù)測2020年未來幾個月的銷售數(shù)據(jù)。
3.1 歸一化處理
歷史輸入數(shù)據(jù)共45個月數(shù)據(jù)、數(shù)據(jù)比較連續(xù),故采用前面5個月數(shù)據(jù)的平均值作為初始化數(shù)據(jù),對數(shù)據(jù)中存在極大和極小的數(shù)據(jù)采用相鄰兩個月的平均數(shù)據(jù)進行替換,從而保證預(yù)測數(shù)據(jù)的精度,得到數(shù)據(jù)如下所示:
3.2 三次指數(shù)平滑預(yù)測模型
將歸一化后的初始值即前面5個月的平均銷售量作為一次指數(shù)平滑S'1 的值,取不同的a(從0.1到0.9) ,按照模型步驟分別計算出三次指數(shù)平滑預(yù)測值和對應(yīng)的預(yù)測誤差RMSE,存儲最小誤差下的預(yù)測值,最終通過三次指數(shù)預(yù)測模型得到預(yù)測值。
3.3 灰色預(yù)測模型
將歸一化后的數(shù)據(jù)送入到灰色預(yù)測模型中,按照預(yù)測精度對預(yù)測值進行檢驗,在訓(xùn)練中發(fā)現(xiàn)測試精度P > 0.95,C < 0.35較好的精度情況比較少,大部分時候處于合格和勉強可以的狀態(tài),甚至出現(xiàn)不合格的情況。
3.4 LSTM 網(wǎng)絡(luò)預(yù)測模型
歸一化后的數(shù)據(jù),并選取14個特征值,送入神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練并預(yù)測結(jié)果,相關(guān)參數(shù)包含:網(wǎng)絡(luò)最大訓(xùn)練次數(shù)1000;網(wǎng)絡(luò)學(xué)習(xí)速率0.01;隱含層數(shù)2個;隱含層神經(jīng)元個數(shù)30*30;輸入層和隱含層添加dropout,dropout = 0.1。訓(xùn)練階段(樣本1000個):輸入1000*14,輸出1000*1;預(yù)測階段:輸入1*14,輸出1*1;
3.5 基于BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型
三次指數(shù)平滑模型的輸出結(jié)果y1t,灰色預(yù)測模型輸出結(jié)果y2t和LSMT網(wǎng)絡(luò)預(yù)測模型的輸出結(jié)果y3t作為該模型的輸入數(shù)據(jù),隱含層采用一層2個神經(jīng)元,a取5,通過訓(xùn)練模型后得到的預(yù)測結(jié)果如表2所示:
4 總結(jié)
將三次指數(shù)平滑預(yù)測模型輸出值y1t、色預(yù)測模型輸出值y2t、LSMT預(yù)測模型輸出值y3t和基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型輸出值(預(yù)測值)4種結(jié)果比較如圖5所示:
從圖5可以看出,三次指數(shù)預(yù)測模型預(yù)測結(jié)果的最低點和最高點間變化的幅度較大,但之后的預(yù)測數(shù)據(jù)較平穩(wěn);灰色預(yù)測模型預(yù)測結(jié)果和LSTM比較相似,但其最高點和最低點之間的差異比較大。基于BP神經(jīng)網(wǎng)絡(luò)組合模型預(yù)測結(jié)果整體變化比較平穩(wěn),點與點之間沒有存在大幅度的跳躍,預(yù)測結(jié)果再與近期的原始數(shù)據(jù)進行對比,發(fā)現(xiàn)基于BP神經(jīng)網(wǎng)絡(luò)組合模型預(yù)測的結(jié)果更與真實數(shù)據(jù)接近。