蘇照軍,郭銳鋒,高 岑,王美吉,李冬梅
1(中國科學院大學 計算機控制與工程學院,北京 100049)
2(中國科學院 沈陽計算技術研究所,沈陽 110168)
我國是一個農業大國,農業在國民經濟中占據著重要地位,農業是否平穩健康發展,關系著社會的穩定.所以,對農產品物價進行預測具有迫切的現實意義.
之前人們大多采用單一模型進行預測,近年來人們更多的是采用組合模型進行預測.陳詠梅[1]等使用基于ARIMA 和BP神經網絡[2]的組合模型對福建濱海旅游市場規模進行預測,表明該組合模型的預測準確率高,更加接近真實情況.朱葉[3]等使用灰色模型和BP神經網絡構建的組合模型對兵團農產品物流市場需求進行預測,表明組合模型在預測精度上有了很大的提升.劉金源[4]等使用基于BP神經網絡、GM 灰色預測理論和PCA 主成分分析的組合模型對城市燃氣日負荷進行預測,表明該組合模型[5,6]是一種更為有效的預測方法.組合模型展現出了更大的優勢.本文使用粒子群和動態學習率優化BP神經網絡模型,結合支持向量機模型對農產品物價進行預測,將兩組預測結果使用優化的BP神經網絡進行組合得到預測結果,提高模型的泛化能力和預測準確度.
組合模型是利用兩種或者兩種以上的模型,分別對實際問題進行模型訓練,將結果使用權重進行組合,得到最終結果的過程.組合模型目標就是利用一組最優權重系數,對單獨模型結果進行加權求值,使得結果更加接近真實值.
目前,單一預測模型準確率不高,考慮因素單一,沒有結合模型的適用場景,所以本文研究了組合模型.由于BP神經網絡能夠更好地模擬線性和非線性數據,適合于長期預測模型的訓練;SVR 是基于時間序列的回歸預測模型,適合于短期預測.將適合中長期預測的BP模型和適合于短期預測的SVR模型組合,使模型具有更高的準確率,更強的泛化能力.所以選用了優化后的BP神經網絡模型和SVR模型進行組合.提出了基于BP-SVR-BP的組合模型算法,即BP神經網絡-支持向量機回歸-BP神經網絡的組合模型,并且使用農產品價格數據對模型進行驗證評估.

圖1 BP-SVR-BP 組合模型
圖1 為BP-SVR-BP 組合模型的結構圖.第一步將經過數據預處理的訓練集數據(train_data)輸入到SVR 算法中,經過訓練,得到SVR模型(M1);同時將訓練集數據輸入第一輪的BP神經網絡算法中,經過訓練,得到BP神經網絡模型(M2).第二步將實驗數據或者稱之為測試數據(test_data)輸入到SVR 和BP模型中,得到兩組實驗結果數據(P1,P2),將其組成兩列數據,并且將其對應的真實數據(Price)加入,作為第三列,形如(P1,P2,Price)組成第二輪BP神經網絡算法的訓練集數據(new_data).第三步將新的訓練集數據(new_data)輸入BP神經網絡算法,這一步主要是利用BP 擬合組合模型的權重系數,尋找最優的權重系數組合.經過訓練,得到第二輪的BP模型(M3).第四步將實驗數據(test_data1)輸入模型(M3),得到預測結果,評價組合模型的預測準確度.
在組合模型中,第一輪我使用了優化的BP神經網絡模型和基于多項式核函數的SVR模型,第二輪使用了優化的BP神經網絡模型訓練組合模型權重系數.
本文采用三層結構,即輸入層、隱含層、輸出層.假設輸入層n個節點,隱含層k個節點,輸出層1個節點.X(X1,X2,…,Xn)為輸入層輸入數據;M(M1,M2,…,Mn)為經輸入層加權求和的結果,即隱含層的輸入數據;N(N1,N2,…,Nk)為隱含層由激活函數求得的結果,即隱含層的輸出數據;Z為經隱含層加權求和的結果,即輸出層的輸入數據;Y為預測值,W為各層鏈接的權值,B(B1,B2,…,Bi)表示偏置值.
根據輸入X,得隱含層的輸入為:

其中,l為層數,b為偏置值.則隱含層的輸出為:

其中,ψ1為隱含層Sigmoid 激活函數,j=1,2,…,n.
輸出層的輸入為:

輸出層的輸出為:

由于BP神經網絡的權值和閾值對價格的預測準確度有一定影響,可以通過粒子群算法對網絡中的權值和閾值進行全局尋優,合理優化調整.假設給定n個粒子:
pi=(pi1,pi2,···,piD)粒子i的位置xi=(xi1,xi2,···,xiD);粒子i的速度vi=(vi1,vi2,···,viD);粒子i經過的歷史最優位置;粒子群整體經歷的最優位置:g=(g1,g2,···,gD);則PSO 速度更新公式為:

位置更新為:

k為:第k次迭代;c1,c2為學習率變量,r1,r2為[0,1]范圍之內的隨機數,ω為粒子群權重變量.
假設輸入層、隱含層、輸出層節點數為L1_Num,L2_Num,L3_Num.種群參數初始化為:種群數目N;維度為D=L1_Num×L2_Num+L2_Num×L3_Num;使用真實值與預測值的均方誤差作為粒子群適應度函數:

其中,Oj為第j個記錄的真實值,Yj為第j個記錄的預測值.得到的最優位置數據,分配到網絡中訓練.
BP神經網絡的學習率對網絡的收斂速度有影響整.η過大,收斂速度過快;η過小,導致收斂速度過慢.因此需采用一種動態改變的學習速率η.

支持向量回歸機(SVR)模型是在SVM 基礎上,加以改進,可以用于基于回歸的預測模型.模型主要是通過核函數將數據映射到一個高維空間,然后在高維空間尋找一個最優的超平面,使所有點到該平面的距離誤差最小.這個函數即是SVR 函數模型.SVR 函數為:

其中,W為權值向量;φ(X)為映射函數;b為常數.在此基礎增加松弛度變量ξi和,則式子可轉化為:

同時必須滿足:

數據選用2009-2016年上海農產品日價格數據作為實驗數據.

圖2 構建模型流程圖
選用數據的平均交易價格作為預測目標,數據發布時間、最低交易價格、最高交易價格、最高溫度、最低溫度作為模型輸入數據,訓練模型.
(1)將數據發布時間轉換為YYMMDD的時間格式,例如2016/6/11 轉換為20160611.
(2)采用前后k個數據的平均值填充缺失值.
(3)采用MIN-MAX 方法對特征數據歸一化.
(1)預處理之后的數據,選用集合數據(train_data)的70% 作為訓練數據(Train1),train_data的30%的數據作為測試數據(Test1).將Train1 數據分別輸入到SVR 算法和BP 算法中訓練出SVR模型(M1)和BP模型(M2).將Test1 輸入到M1 和M2模型中,得到兩組預測結果(P1,P2),和真實數據(Price)組成三列數據(train_data2),形如(P1,P2,Price).將train_data2的80% 作為訓練集(Train2),train_data2的20%作為測試集(Test2),Train2 訓練集訓練BP模型,得到最優權重系數組合,得到模型M3.將Test2 輸入M3模型得到預測結果值.
(2)對BP神經網絡訓練,選擇最優隱含層節點數目.使用均方根誤差(RMSE)衡量真實值和預測值之間的準確率,如圖3.

圖3 隱藏層節點數-RMSE 圖
根據圖3,BP 隱含層節點數目為9.
(3)SVR模型,選用多項式核函數(Poly).
本文基于BP-SVR-BP 組合模型,第一個BP網絡模型使用了5個節點的輸入層,9個節點的隱藏層,1個節點的輸出層,網絡權值和閾值使用粒子群算法進行全局優化,加以自適應動態調整學習率;SVR 選用多項式核函數進行訓練;第二個BP神經網絡使用2個節點的輸入層,5個節點的隱含層,1個節點的輸出層.預測結果如圖4.
圖4 描繪了時間與價格預測值的折線圖,從圖中可以得出BP神經網絡,SVR模型,BP-SVR-BP模型,總體趨勢相近,但BP,SVR 局部存在較大差距,BPSVR-BP 組合模型局部更符合價格數據趨勢.將折線圖放大,如圖5所示.

圖4 時間-價格圖

圖5 時間-價格圖
從圖5中,可以得出,SVR模型預測的值離真實值曲線最遠,BP神經網絡次之,BP-SVR-BP模型最近,說明BP-SVR-BP模型的預測準確度最高,所以BP-SVRBP 預測準確率上優于單一的BP,SVR模型.
為了更加準確地評價三個預測模型,采用量化體系進行評價.采用MAE,MSE,RMSE 進行量化評價.
測得的結果見表1.

表1 單一模型對比
從表1中,可以從量化的角度分析得出,BP-SVRBP模型,MAE,MSE,RMSE的值都比BP 和SVR模型小,基于以上綜合分析,得出BP-SVR-BP 組合預測模型對農產品價格曲線擬合效果更優,預測準確率更高.
前人的研究中,也嘗試了很多的組合模型預測算法.比如使用BP神經網絡模型和ARIMA模型進行組合,首先通過ARIMA模型預測結果值,接著使用預測值作為參數,輸入BP神經網絡預測,得出預測結果,即為BP-ARIMA模型.也有采用BP神經網絡模型和灰色模型GM(1,1)進行組合,將結果采用標準差確定組合模型組合權重,將單一模型結果組合,得出預測結果,即為BP-GM(1,1)組合模型.現將提到的預測方法用在農產品價格預測上,對組合模型進行對比分析,如圖6.

圖6 組合模型時間-價格圖
圖6 分別描繪了BP-SVR-BP、BP-ARIMA、BPGM(1,1)組合模型在農產品價格中的預測結果,從圖中可以清晰地看出,三種組合模型對農產品價格曲線模擬較好,都能夠比較準確地模擬出農產品價格走勢,和真實農產品價格走勢相同,但是從圖6中也可以得出,三種模型雖然走勢相同,但是準確率上卻有差別,BP-SVR-BP模型描繪的曲線相對于BP-ARIMA、BPGM(1,1)模型描繪的曲線,更加逼近真實數據曲線,即為準確率更高.采用量化體系分析結果如表2.
從表2中,可以從量化的角度分析,BP-SVR-BP 組合模型的MAE,MSE,RMSE 值都比BP-ARIMA、BPGM(1,1)組合模型的小,所以可以得出BP-SVR-BP 組合模型的準確率更好,泛化能力更強,能夠更好地實現農產品物價的預測.

表2 組合模型對比分析
本文提出了基于BP-SVR-BP的組合模型,使用圖分析和數據量化分析,分析了BP模型、SVR模型、BP-SVR-BP 組合模型,得到組合模型準確率更高,擬合效果更優.緊接著對常見的組合模型進行了對比分析,對BP-SVR-BP 組合模型、BP-ARIMA 組合模型、BPGM(1,1)組合模型三種組合模型進行了圖分析和數據量化分析,得出BP-SVR-BP 組合模型相對于BPARIMA 和BP-GM(1,1)組合模型準確率更好,泛化能力更強,能夠較好地實現農產品物價的預測.本方法還有繼續需要改進的地方,比如說,將對農產品價格產生影響的更多影響因素納入模型訓練中,對SVR 核函數進行優化,對組合模型組合預測結果的加權值進行優化等等.未來將繼續對組合模型進行深入研究,深化改進模型,得到更優組合.