孫艷文,詹天明
(南京審計(jì)大學(xué) 信息工程學(xué)院,江蘇 南京 211200)
銷售預(yù)測是銷售實(shí)施單位根據(jù)已有歷史銷售數(shù)據(jù)進(jìn)行規(guī)律分析和數(shù)據(jù)挖掘,綜合考慮多種影響因子,設(shè)計(jì)科學(xué)合理的預(yù)測銷售模型,對未來銷售情況的一種預(yù)測。銷售預(yù)測的準(zhǔn)確、可靠性一直是企業(yè)作為市場需求規(guī)劃的必要保證,銷售預(yù)測作為營銷的重要一環(huán),是進(jìn)行行情分析和市場研究的重要依據(jù),銷售預(yù)測是否精準(zhǔn)可直接影響工程預(yù)算、資金回籠、經(jīng)營決策甚至是企業(yè)的未來發(fā)展走向。
常見的銷售預(yù)測模型有移動平均模型、時(shí)間序列預(yù)測模型、灰色預(yù)測模型和回歸分析模型等。移動平均方法相對簡單,通過對一定數(shù)組的平均值進(jìn)行計(jì)算,得出未來的數(shù)值趨勢;缺點(diǎn)是數(shù)值的間隔選定有一定難度,只能了解變化的短期未來趨勢。時(shí)間序列模型運(yùn)用矩陣及統(tǒng)計(jì)學(xué)的方法,可以預(yù)測銷售產(chǎn)品將會進(jìn)入高銷量區(qū)還是低銷量區(qū)的未來短期走勢?;疑A(yù)測模型所需建模信息少,其模型是依靠灰色系統(tǒng)生成,特點(diǎn)是能從混亂的數(shù)據(jù)找到數(shù)據(jù)之間的規(guī)律,它大多數(shù)情況用于小樣本預(yù)測,該環(huán)節(jié)存在不確定性?;貧w分析模型對未來的預(yù)測較為精準(zhǔn),目前有專業(yè)的統(tǒng)計(jì)軟件SPSS/SAS支持,但因?yàn)橄鄬I(yè)和復(fù)雜,需要的自變量及因變量數(shù)據(jù)要多而且精確。
利用時(shí)間序列預(yù)測的穩(wěn)定性,使用遺傳算法對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,既能保持?jǐn)?shù)據(jù)挖掘環(huán)節(jié)搜索的全局性和并行化,又能兼顧預(yù)測過程的靈活性和可擴(kuò)展性,最終還能得到精確度較高的預(yù)測結(jié)果。經(jīng)過實(shí)驗(yàn)驗(yàn)證,基于優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的銷售預(yù)測算法不僅提高了銷售預(yù)測的預(yù)測準(zhǔn)確度,而且大大縮短了收斂時(shí)間,簡化了網(wǎng)絡(luò)結(jié)構(gòu),數(shù)據(jù)預(yù)測的誤差進(jìn)一步縮小,對于精準(zhǔn)營銷具有較高的理論研究意義和實(shí)際應(yīng)用價(jià)值。
時(shí)間序列分析模型是根據(jù)已有的系統(tǒng)觀測所得時(shí)間序列數(shù)據(jù),通過特定方法進(jìn)行參數(shù)評估和曲線擬合來建立數(shù)學(xué)模型的一種方法。把與時(shí)間有因變量關(guān)系的數(shù)據(jù)序列稱之為動態(tài)數(shù)據(jù),采用線性插值法對曲線進(jìn)行擬合,參數(shù)估計(jì)一般使用非線性最小二乘法或指數(shù)平滑法。時(shí)間序列模型對已有數(shù)據(jù)序列依賴性較高,并假設(shè)從已有數(shù)據(jù)分析所得的變化模式會延續(xù)至后續(xù)階段,這種必然式的規(guī)律預(yù)測不能綜合考慮房地產(chǎn)及其他行業(yè)的多種復(fù)雜影響因素的綜合作用結(jié)果,但其時(shí)間跨度可以任意調(diào)節(jié),常用單位有年、季度、月或日,統(tǒng)計(jì)跨度靈活。同時(shí),預(yù)測所依托的前期數(shù)據(jù)允許具有不規(guī)則性,甚至可以不考慮事務(wù)間的因果關(guān)系,具有較好的適用性。
指數(shù)平滑法是平穩(wěn)測試方法中的一種,由移動平滑法演變而來,通過對已有歷史數(shù)據(jù)進(jìn)行加權(quán)平均進(jìn)而得到預(yù)測結(jié)果,對離預(yù)測區(qū)間緊鄰的數(shù)據(jù)賦予較大的權(quán)值系數(shù),對較遠(yuǎn)的后期預(yù)測,其權(quán)值則按指數(shù)規(guī)律遞減,所得曲線相對平滑,因此稱之為指數(shù)平滑方法。根據(jù)所選函數(shù)的冪級分為一級指數(shù)平滑、二級指數(shù)平滑等。
二次指數(shù)平滑法(second exponential smoothing method)是在一次指數(shù)平滑的基礎(chǔ)上再進(jìn)行一次指數(shù)平滑,因而稱之為二次指數(shù)平滑。數(shù)據(jù)經(jīng)過二次指數(shù)平滑處理之后得到一條二次平滑曲線,各數(shù)據(jù)點(diǎn)經(jīng)過擬合處理之后,避免了時(shí)間序列曲線上出現(xiàn)突兀式的瞬間抖動或數(shù)據(jù)點(diǎn)的大尺度偏離現(xiàn)象,對特殊點(diǎn)能加以自動調(diào)整,依據(jù)該算法計(jì)算所得的數(shù)據(jù)能預(yù)測時(shí)間序列的短期變化規(guī)律。
N
次迭代。BP神經(jīng)網(wǎng)絡(luò)算法通過將循環(huán)模擬中系統(tǒng)產(chǎn)生的誤差值返回到輸出結(jié)果中用于調(diào)整神經(jīng)元的權(quán)重,從而得到可以模擬原始問題的人工神經(jīng)網(wǎng)絡(luò)系統(tǒng)。簡單地講就是不停地修正網(wǎng)絡(luò)中各層節(jié)點(diǎn)的權(quán)值和閾值,直到獲得符合預(yù)期目標(biāo)的輸出結(jié)果。對于BP神經(jīng)網(wǎng)絡(luò)算法的步驟,可以簡單歸納如下:
(1)給定BP神經(jīng)網(wǎng)絡(luò)的輸入向量X
和輸出向量Y
,初始化權(quán)值和閾值;(2)經(jīng)過計(jì)算,得出BP神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出;
(3)計(jì)算BP神經(jīng)網(wǎng)絡(luò)實(shí)際輸出與輸出向量Y
之間的誤差;(4)誤差反向傳播,更新權(quán)值;
(5)權(quán)值進(jìn)行學(xué)習(xí),使得誤差最小。
重復(fù)步驟(1)~步驟(5),直至誤差最小,如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)算法過程
BP神經(jīng)網(wǎng)絡(luò)是一種具有非線性映射與自學(xué)習(xí)能力的全局算法,具有非常高效的泛化能力。對于任意的非線性映射關(guān)系,BP神經(jīng)網(wǎng)絡(luò)均可以逼近,然而其是一種基于梯度下降的算法,具有以下缺陷:
(1)誤差存在于誤差曲面上,然而有些誤差曲面比較平坦,此時(shí)誤差感受不到權(quán)值的變化,導(dǎo)致下降速度變慢,訓(xùn)練時(shí)間較長;
(2)算法存在多個(gè)極小值點(diǎn),將導(dǎo)致算法陷入極小值點(diǎn)而無法得到全局最優(yōu)解;
(3)算法在學(xué)習(xí)數(shù)據(jù)的過程,由于其權(quán)值的變化不定,將導(dǎo)致學(xué)習(xí)過程變得不穩(wěn)定,出現(xiàn)振蕩。
(1)通過算法對每條染色體評估個(gè)體的適應(yīng)度;
(2)以高適應(yīng)度和高選擇率為基準(zhǔn)原則,從染色體隊(duì)列中找出父母雙親;
(3)對父母雙親進(jìn)行染色體的抽取,用以交叉生成子代;
(4)將子代進(jìn)行變異操作;
(5)不斷去重復(fù)步驟(2)~步驟(4),直到有新的種群生成;
(6)結(jié)束循環(huán),返回結(jié)果。
算法流程如圖2所示。
施藥后,試驗(yàn)全程調(diào)查雜草5次,分別為藥前調(diào)查基數(shù),藥后5天調(diào)查藥劑防效藥;10后天調(diào)查藥劑防效;藥后15天調(diào)查藥劑防效;藥后20天調(diào)查最終藥劑防效,調(diào)查時(shí)小區(qū)對角線選取5點(diǎn),每點(diǎn)(1m×1m)。目測試驗(yàn)藥劑對水稻的安全性。
圖2 遺傳算法流程
遺傳算法的缺點(diǎn)是無法直接處理空間參數(shù),為解決這一問題學(xué)者們引入了優(yōu)化參數(shù)進(jìn)行調(diào)優(yōu),通過適應(yīng)度函數(shù)形成編碼串聯(lián)群體,對其進(jìn)行交叉結(jié)合和基因變異,最終優(yōu)勝劣汰地篩選出優(yōu)秀個(gè)體,根據(jù)適應(yīng)度閾值不斷迭代,直至滿足條件為止。
優(yōu)化BP神經(jīng)網(wǎng)絡(luò)由BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)、算法優(yōu)化和算法預(yù)測三個(gè)部分組合而成。模擬生物個(gè)體的長度信息由網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行表征,在實(shí)際算法設(shè)計(jì)中通常表示為擬合函數(shù)的輸入或輸出參數(shù);通過探索和調(diào)整特定權(quán)值達(dá)到優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法的目的,最終迭代篩選出具有最后適應(yīng)度值的種群個(gè)體;網(wǎng)絡(luò)預(yù)測通過遺傳算法獲取最優(yōu)個(gè)體的閾值和權(quán)值用以訓(xùn)練網(wǎng)絡(luò),預(yù)測出函數(shù)的輸出。
對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行一次實(shí)驗(yàn),實(shí)驗(yàn)所用模擬數(shù)據(jù)來源于《中國房地產(chǎn)統(tǒng)計(jì)年鑒》。實(shí)驗(yàn)抽取一家名為碧桂園的房地產(chǎn)公司作為實(shí)驗(yàn)對象,并對其進(jìn)行仿真實(shí)驗(yàn)。根據(jù)該公司提供的銷售額,統(tǒng)計(jì)出了1 000條數(shù)據(jù),在數(shù)據(jù)清洗后取前975條利用建立的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí),再利用后25條已經(jīng)完備的數(shù)據(jù)進(jìn)行缺失銷售額的實(shí)驗(yàn),得到實(shí)驗(yàn)結(jié)果與原數(shù)據(jù)進(jìn)行比對,得出了結(jié)果——利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)后的預(yù)測誤差為29.550 1%,如圖3所示。
圖3 BP神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果
對上述數(shù)據(jù)集合利用遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行仿真實(shí)驗(yàn),如圖4所示,其預(yù)測結(jié)果誤差為21.472 8%。
圖4 GA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果
就之前利用BP神經(jīng)網(wǎng)絡(luò)和GA-BP神經(jīng)網(wǎng)絡(luò)得到的結(jié)果來看,預(yù)測誤差仍然較大。數(shù)據(jù)集的大小不一,對于一些數(shù)據(jù)量比較小的數(shù)據(jù)集,上述兩種神經(jīng)網(wǎng)絡(luò)都沒有足夠的訓(xùn)練量,這樣會導(dǎo)致閾值調(diào)整不充分、過快收斂等等問題,從而使最后的預(yù)測精度大打折扣。面對這一問題,該文提出了一種應(yīng)用方法,即利用時(shí)間序列的結(jié)果對GA-BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化校正(簡稱TC-GABP神經(jīng)網(wǎng)絡(luò)模型)。由于時(shí)間序列預(yù)測模型對于事物發(fā)展之間的不規(guī)則性和因果關(guān)系和對預(yù)測精度和時(shí)長呈反比都不考慮的特點(diǎn),基于樣本容量較小的情況,對原GA-BP神經(jīng)網(wǎng)絡(luò)的閾值和結(jié)果進(jìn)行一些優(yōu)化。
時(shí)間序列預(yù)測模型的實(shí)現(xiàn)流程如下:
(1)人工收集歷史資料,按照傳統(tǒng)分類方法進(jìn)行整理并根據(jù)時(shí)間序列繪成統(tǒng)計(jì)圖;
(2)對時(shí)間序列中每一時(shí)期的數(shù)值進(jìn)行誘發(fā)的原因進(jìn)行分析;
(3)對長期趨勢、季節(jié)變動以及不規(guī)則變動進(jìn)行求值操作,并找到最近似的數(shù)學(xué)模式來代表;
(4)計(jì)算未來的時(shí)間序列預(yù)測值。利用步驟(3)中得到的模型以及預(yù)測不規(guī)則變動值通過加法或乘法模式進(jìn)行計(jì)算。
利用BP神經(jīng)網(wǎng)絡(luò)的單次傳遞值和時(shí)間序列模型的結(jié)果所產(chǎn)生的誤差進(jìn)行一元線性回歸,并通過計(jì)算誤差的函數(shù)擬合關(guān)系進(jìn)行預(yù)測。最后通過找出兩者的誤差規(guī)律,對BP神經(jīng)網(wǎng)絡(luò)的傳遞值進(jìn)行校正,擇優(yōu)選擇遺傳算法,進(jìn)入GA-BP神經(jīng)網(wǎng)絡(luò)進(jìn)行結(jié)果計(jì)算得出校正后的預(yù)測值。
在面對樣本數(shù)據(jù)量小的情況下,利用每個(gè)個(gè)體獨(dú)立討論又會導(dǎo)致工程量過大,那么就有必要利用線性關(guān)系來處理這種非線性問題,但是最后誤差一定較大。為此設(shè)定一個(gè)元線性回歸函數(shù)為y
=f
(x
)作為校正函數(shù),再使用BP神經(jīng)網(wǎng)絡(luò)的輸出誤差E
減去y
的值,得到校正過后的值,E
值。該值在GA-BP的三層網(wǎng)絡(luò)架構(gòu)中影響各個(gè)神經(jīng)元的閾值和各傳遞權(quán)值,并在校正GA-BP神經(jīng)網(wǎng)絡(luò)缺少訓(xùn)練樣本的情況下,達(dá)到調(diào)整傳遞值的目的。y
修正GA-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測值,得到E
、E
以及E
的修正值,其中E
為誤差平方和。根據(jù)數(shù)學(xué)方法,對GA-BP神經(jīng)網(wǎng)絡(luò)的閾值與權(quán)值進(jìn)行再一次帶有優(yōu)化因子的優(yōu)化,步驟如下:基于優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的流程圖如圖5所示。
圖5 基于優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的流程圖
利用時(shí)間序列預(yù)測模型和優(yōu)化改進(jìn)后的TC-GABP神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)集進(jìn)行銷售預(yù)測。
仿真實(shí)驗(yàn)使用的是《中國房地產(chǎn)統(tǒng)計(jì)年鑒》中碧桂園房產(chǎn)公司數(shù)據(jù)作為數(shù)據(jù)集。使用其已經(jīng)提供的1 000條銷售額數(shù)據(jù),抽取前975條進(jìn)行訓(xùn)練學(xué)習(xí),并分別利用一次指數(shù)平滑法和二次指數(shù)平滑法的時(shí)間序列模型對其進(jìn)行仿真測試,仿真結(jié)果如圖6和圖7所示。
圖6 一次平滑指數(shù)預(yù)測
圖7 二次平滑指數(shù)預(yù)測
從仿真實(shí)驗(yàn)結(jié)果可以看出,實(shí)驗(yàn)結(jié)果與理論預(yù)測基本相同。但一次指數(shù)平滑法的實(shí)驗(yàn)結(jié)果無論是在α
為何值的情況下都出現(xiàn)了較多的滯后反應(yīng)。這也襯托出了二次指數(shù)平滑法的預(yù)測準(zhǔn)確度之高(誤差率為25.747 1%),為優(yōu)化算法提供了可行方案。以上文提及的BP神經(jīng)網(wǎng)絡(luò)算法和遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)算法的實(shí)驗(yàn)結(jié)果誤差程度為比較對象。使用已經(jīng)提供的1 000條銷售額數(shù)據(jù),訓(xùn)練集由數(shù)據(jù)集中97.5%的數(shù)據(jù)組成,其余數(shù)據(jù)則作為驗(yàn)證集,來驗(yàn)證誤差。TC-GABP神經(jīng)網(wǎng)絡(luò)算法得到的結(jié)果如圖8所示。
圖8 TC-GABP神經(jīng)網(wǎng)絡(luò)預(yù)測
從上述圖像中可以直觀看出,TC-GABP神經(jīng)網(wǎng)絡(luò)訓(xùn)練后的預(yù)測結(jié)果更接近真實(shí)的結(jié)果,比遺傳算法改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)得到的結(jié)果更準(zhǔn)確。經(jīng)過數(shù)學(xué)計(jì)算,它的精度提高了8%,誤差率降低了13%。表明TC-GABP神經(jīng)網(wǎng)絡(luò)模型不單單是在預(yù)測的準(zhǔn)確率上有所提升,其誤差率也得到了改善。相較于另外三種模型來說,預(yù)測結(jié)果更為接近真實(shí)值的結(jié)果。
部分預(yù)測結(jié)果如表1所示。
表1 不同模型預(yù)測結(jié)果對比
根據(jù)表1的數(shù)據(jù)可以看出,TC-GABP神經(jīng)網(wǎng)絡(luò)的預(yù)測準(zhǔn)確率最佳,達(dá)到了13.739 7%。對于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò),可以看出它的誤差率達(dá)到了29.554 1%,接近于30%。一般來說,接近30%的誤差率的預(yù)測模型將被認(rèn)為是不可靠的。對于時(shí)間序列模型和遺傳算法改進(jìn)的神經(jīng)網(wǎng)絡(luò),雖然誤差率不是特別高,仿真實(shí)驗(yàn)也都表現(xiàn)良好,但是相較于TC-GABP神經(jīng)網(wǎng)絡(luò)的誤差率來說,仍是不太理想。因此,預(yù)測模型效果最好的還是TC-GABP神經(jīng)網(wǎng)絡(luò),仿真實(shí)驗(yàn)也是最接近真實(shí)效果的。
文章對于銷售預(yù)測模型的建立,首先選擇時(shí)間序列模型來減少源數(shù)據(jù)中的大量誤差,再利用優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測,并具體應(yīng)用于某房地產(chǎn)銷售數(shù)據(jù)集合。實(shí)驗(yàn)結(jié)果表明,優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)算法不僅大幅提高了預(yù)測準(zhǔn)確度,縮短了收斂時(shí)間,簡化了網(wǎng)絡(luò)結(jié)構(gòu),也使得數(shù)據(jù)預(yù)測的誤差進(jìn)一步縮小。算法具有較高的理論研究意義和實(shí)際應(yīng)用價(jià)值。