向昌盛,周子英,武麗娜
(湖南農(nóng)業(yè)大學a.東方科技學院;b.資源環(huán)境學院,湖南 長沙 410128)
糧食產(chǎn)量預測的支持向量機模型研究
向昌盛a,周子英b,武麗娜b
(湖南農(nóng)業(yè)大學a.東方科技學院;b.資源環(huán)境學院,湖南 長沙 410128)
糧食產(chǎn)量的歷史數(shù)據(jù)有限,是典型的小樣本數(shù)據(jù),又由于糧食產(chǎn)量受不確定性因素的影響,是一個復雜的非線性系統(tǒng),以往的糧食產(chǎn)量時間序列預測模型的階數(shù)采用經(jīng)驗方法或線性方法來確定,得到的預測精度不理想。針對這些問題,可將支持向量機引入到時間序列模型定階的方法中,然后采用留一法交叉驗證尋找最優(yōu)參數(shù),建立一個多輸入、單輸出的預測模型。通過對中國糧食產(chǎn)量進行仿真實驗,并與一次滑動平均、ARIMA、LS_SVM和 RBF神經(jīng)網(wǎng)絡的預測模型作比較來驗證模型的有效性,結(jié)果表明該模型該有較高的預測精度和較強的泛化能力,證明了該模型對近期糧食產(chǎn)量的預測是可靠的。
糧食;產(chǎn)量預測;支持向量機;時間序列
農(nóng)業(yè)是國民經(jīng)濟的基礎,糧食生產(chǎn)是農(nóng)業(yè)的關鍵。預測未來一段時間糧食產(chǎn)量的變化情況,可以為政府科學決策提供依據(jù),也便于為糧農(nóng)、企業(yè)提供決策參考。糧食產(chǎn)量數(shù)據(jù)是一種高度不穩(wěn)定、復雜且難以預測的時間序列數(shù)據(jù),這些數(shù)據(jù)往往既隱含大量的動態(tài)特征,又受自變量的影響,同時具有高度的非線性[1]。國內(nèi)外的相關研究中,不少學者構建了許多很有價值的理論假說和預測模型,主要包括時間序列方法、回歸分析法和人工神經(jīng)網(wǎng)絡方法等。時間序列方法中最具代表性的差分自回歸移動平均(autore-gressive integrating moving average,ARIMA),ARIMA是基于線性數(shù)據(jù)的模型,但糧食時間序列數(shù)據(jù)往往更多地表現(xiàn)為非線性且含有復雜的噪聲,這樣基于線性模型定階獲得的模型階數(shù)和保留變量的ARIMA模型,往往并非最優(yōu),從而導致預測精度不高[2]。采用回歸分析法[3]是基于固定模型的,而糧食產(chǎn)量是非線的,而且具有混沌性,所以采用回歸分析法無法捕捉到糧食產(chǎn)量數(shù)據(jù)的非線性特征,預測結(jié)果失真。王啟平[4]、禹建麗[5]等利用神經(jīng)網(wǎng)絡對糧食產(chǎn)量進行了預測,取得了不錯的效果,但是神經(jīng)網(wǎng)絡要求數(shù)據(jù)樣本大,而糧食產(chǎn)量數(shù)據(jù)屬于小樣本數(shù)據(jù),所以在預測過程中常出現(xiàn)結(jié)果過擬合,泛化能力不強等現(xiàn)象。Vapnik等[6]根據(jù)統(tǒng)計理論提出了支持向量機(support vector machines,SVM)學習方法,SVM 的最大特點是改變了傳統(tǒng)的神經(jīng)網(wǎng)絡基于經(jīng)驗風險最小化原則,較好地解決了小樣本、非線性、過擬合、維數(shù)災和局極小等問題,SVM已經(jīng)逐步應用于各個領域的預測中[7-9],李曉東[10]等利用最小二乘支持向量機(least squares support vector machines,LS_SVM)對我國糧食產(chǎn)量進行了預測,得到的結(jié)果比較好。但LS_SVM 通過構造損失函數(shù)將原支持向量機算法的二次優(yōu)化問題轉(zhuǎn)化為求解線性方程,犧牲了預測精度,失去了SVM稀疏性的優(yōu)點,不能保證是全局最優(yōu)解[11,12]。
總之,糧食產(chǎn)量的歷史數(shù)據(jù)有限,是典型的小樣本數(shù)據(jù),同時由于糧食產(chǎn)量受不確定性因素影響的,是一個復雜的非線性系統(tǒng),以往的糧食產(chǎn)量時間序列預測模型的階數(shù)采用經(jīng)驗方法或線性方法來確定,得到的預測精度不理想,針對這些問題,筆者將SVM引入到糧食產(chǎn)量的模型定階和預測中,建立一種基于支持向量機的預測模型,并與一次滑動平均、ARIMA、LS_SVM和RBF神經(jīng)網(wǎng)絡的預測模型作了比較來驗證模型的有效性。
建立時間序列模型最為關鍵的、最困難的是確定模型的階數(shù)。近年來,許多專家和學者對如何確定時間序列的時滯階數(shù)進行了深入研究[13],模型的階數(shù)選取方法在實踐中有兩種:一是靠經(jīng)驗選擇,二是先設定模型其他參數(shù)方法,然后對滯后階數(shù)按照一定的標準進行優(yōu)化。第一種方法過分依賴研究者的水平和經(jīng)驗,不能客觀選擇最佳滯后階數(shù)。而第二種方法則忽略了一個重要問題:滯后階數(shù)與其他參數(shù)對模型好壞的影響是相互的,如果先人為設定其他參數(shù)選擇滯后階數(shù),而后使用該滯后階數(shù)值優(yōu)化參數(shù),很有可能只是在該滯后階數(shù)下的參數(shù)局部最優(yōu),而不是全局最優(yōu)。同時這兩種方法都是針對線性模型的,得到的模型對線性時間序列比較理想,但都忽略了時間序列的非線性關系,這樣導致對非線性模型,其預測準確性受到很大的限制。針對此問題,筆者將支持向量機引到非線性時間序列模型定階中,具體步驟如下:
(1)假定一個原始時間序列 n個樣本,首先強制性的拓一階,用留一法進行交叉驗證進行支持向量機測試,得到模型的方根誤差(Root Mean Square Error,RMSE);
(2)繼續(xù)進行下一輪的拓階,利用相同的方法進行測試,得到本輪的RMSE,對待比較的相鄰兩模型 SVM(n)和 SVM(n+1)的 RMSE,如果RMSESVM(n)>RMSESVM(n+1)(RMSESVM(n)為 SVM(n)的均方誤差,RMSESVM(n+1)為 SVM(n+1)的均方誤差),重復第(2)步,否則轉(zhuǎn)到下一步;
(3)拓階停止,此時取SVM(n)模型的階數(shù)為時間序列模型的滯后階數(shù)。
假設觀察到的時間序列為 (z1,z2,…,zt),時間序列的SVM預測數(shù)學關系表達式為:
步驟 1:數(shù)據(jù)預處理。為了提高運算速度和預測精度,對樣本進行歸一化處理,預測處理變換關系式如下:
式中:x'為歸一化后的值,xmax,xmin分別為原數(shù)據(jù)序列中的最大值和最小值。
步驟2:模型的定階。根據(jù)本文提出的基于SVM的非線性定階方法確定時間模型的滯后階數(shù),即SVM時間序列模型的輸入向量的個數(shù),這樣就可以建立一個多輸入、單輸出支持向量機預測模型。按照式(3)得到支持向量機輸入向量和輸出向量。
步驟 3:核函數(shù)選擇。據(jù)泛函的有關理論,只要一種核函數(shù) K(x,xi)滿足 mercer條件的對稱函數(shù)均可作為核函數(shù),但是對于特定的問題,如何選擇最合適的核,一直是困擾研究者的一個難點,針對此問題,很多研究和實驗表明[14],當缺少過程的先驗知識時,選擇徑向基函數(shù)比選擇其它核函數(shù)效果好。本文核函數(shù)采用徑向基函數(shù)核函數(shù)(RBF)。RBF函數(shù)定義如下:
式中:其中l(wèi)為支持向量的個數(shù),xi為作為支持向量的樣本因子向量,x為待預報因子向量,ai、和b為建立SVM模型待確定的系數(shù),δ為核參數(shù)。
步驟4:模型參數(shù)尋優(yōu)及驗證。利用SVM對訓練樣本集進行學習,通過交叉驗證結(jié)果找出 SVM模型的最優(yōu)參數(shù),利用最優(yōu)參數(shù)對驗證集進行檢驗,檢驗模型的泛化能力。
為了考察SVM模型的優(yōu)劣,同時采用一次滑動平均、ARIMA模型、LS_SVM和RBF神經(jīng)網(wǎng)絡進行對比實驗,所有模型均采用一步預測法。一次滑動平均和ARIMA模型由DPS6.5給出,RBF神經(jīng)網(wǎng)絡和LS_SVM自編程序通過MATLAB7.0調(diào)用神經(jīng)網(wǎng)絡工具箱和LS_SVM1.5工具箱;SVM采用LIBSVM2.86版本在 MATLAB7.0平臺下實現(xiàn),LIBSVM 算法是一種將序貫最小優(yōu)化算法(Sequential Minimal Optimization,SMO)和 Svmlight算法相結(jié)合的優(yōu)化方法,對工作集的選擇策略有所改進,各方面性能優(yōu)于標準SVM。為了評價模型預測性能的優(yōu)劣,RMSE和MAPE作為模型的評價指標,RMSE和MAPE分別定義如下:
其中,yi為真值,為預測值,n為預測樣本數(shù)。RMSE僅適用于同一數(shù)據(jù)集不同模型間的比較,MAPE可用于不同數(shù)據(jù)集間的比較。但對同一數(shù)據(jù)集,如A模型與B模型相比雖MAP E較大而RMSE較小,則A模型預測更為穩(wěn)健,因此,RMSE為主要評價指標。
分析糧食產(chǎn)量的重要性不但體現(xiàn)在對歷史數(shù)據(jù)的擬合上,對未來短期預測也同樣重要,準確的預測可以幫助調(diào)節(jié)糧食需求的市場平衡性,防止出現(xiàn)因為糧食供應不足或過多產(chǎn)生的不良的市場效應。筆者選用的數(shù)據(jù)為 1978─2007年我國的糧食產(chǎn)量,數(shù)據(jù)來自于2008年《中國統(tǒng)計年鑒》,如表1所示。將數(shù)據(jù)分為兩部分,1978─2000年的實際產(chǎn)量作為訓練樣本來擬合和建模,2001─2007年的實際產(chǎn)量作為檢驗樣本來檢驗模型的泛化能力。
表1 1978─2007年我國糧食產(chǎn)量
根據(jù)模型定階得到滯后階數(shù)m=3,這就意味著可以將前三年的糧食產(chǎn)量SVM的輸入來預測當年的糧食產(chǎn)量。按照式(3),表格1中的數(shù)據(jù)可構造樣本27組,將前20組作為訓練樣本,后7組作為檢驗樣本,選用RBF核函數(shù),利用gridregression.py和留一法交叉驗證進行模型參數(shù)自動尋優(yōu),確定最優(yōu)模型的核函數(shù)參數(shù),利用建立的最優(yōu)模型對1987―2000年的數(shù)據(jù)進行擬合,然后模型對2001―2007年的糧食產(chǎn)量進行驗證,檢驗模型的泛化能力,結(jié)果分別見表2和表3。
用上述訓練好的支持向量機模型對我國2008―2010年的糧食產(chǎn)量進行預測,結(jié)果如表4。
由表2,表3及表5可知,線性模型一次滑動平均和ARIMA預測精度不高,主要是不能捕捉到糧食數(shù)據(jù)的非線性特征;RBF神經(jīng)網(wǎng)絡精度也不理想,是因為糧食數(shù)據(jù)屬于小樣本數(shù)據(jù),容易出現(xiàn)局部最優(yōu),導致泛化能力差。在所有的模型中,SVM的擬合和泛化預測能力是最好的,這是由于 SVM基于結(jié)構風險最小,較好地解決了小樣本、非線性、過擬合、維數(shù)災和局極小等問題,泛化推廣能力優(yōu)異。同時說明了基于支持向量機的非線性定階方法挖掘了時間序列數(shù)據(jù)之間隱含的非線性關系,使非線性時間序列模型的定階得到了很好的解決。
利用SVM對2008―2010年我國糧食產(chǎn)量的預測,從表4得知:我國糧食產(chǎn)量在這三年內(nèi)將穩(wěn)定在 5.1~5.4億噸之間,波動不大,基本滿足我國人口的增長需要。近年來我國農(nóng)業(yè)生產(chǎn)結(jié)構調(diào)整力度繼續(xù)加大,減少了糧食作物的種植面積;西部省份繼續(xù)落實國家退耕還林、還草的政策,勞動力外出打工等導致糧食種植面積有所減少;但由于國內(nèi)外糧油價格、科技技術進步和農(nóng)業(yè)生產(chǎn)力發(fā)展,糧食單產(chǎn)有所提高,這樣糧食總產(chǎn)量會維持在5億噸以上,這證明本模型的預測結(jié)果符合我國糧食產(chǎn)業(yè)發(fā)展趨勢。
表2 各種模型對1978―2000年糧食產(chǎn)量的擬合值 萬噸
表3 各種模型對2001―2007年糧食產(chǎn)量泛化值 萬噸
表4 2008―2010我國糧食產(chǎn)量的預測值
表5 各種模型RMSE和MAPE比較
糧食產(chǎn)量序列數(shù)據(jù)具有非線性特征,存在弱混沌特性,因此采用精確的數(shù)學模型預測比較困難。支持向量機適合于小樣本的糧食產(chǎn)量建模與預測,而對模型的定階方法進行改進后,可以較好地擬合糧食產(chǎn)量時間序列模型,獲得較高的回歸與建模精度,其外推預測也具有較高的泛化能力。由于糧食生產(chǎn)是自然再生產(chǎn)與經(jīng)濟再生產(chǎn)的統(tǒng)一,糧食產(chǎn)量預測是受政策、自然環(huán)境、資源投入等多因素的影響,本文沒有考慮到這些因素的影響,只考慮糧食產(chǎn)量歷史數(shù)據(jù),這是今后要進一步研究的方向。
[1]陳成忠,林振山.山東省糧食產(chǎn)量波動的多時間尺度分析[J].農(nóng)機化研究,2007(10):1-4.
[2]張曉杰,張希良.時間序列分析模型在山東省糧食總產(chǎn)量預測中的應用[J].水土保持研究,2007,14(3):309-311.
[3]呂效國,王曉燕,孫建平,吳梅君.用自回歸預測的新方法預測糧食產(chǎn)量[J].安徽農(nóng)業(yè)科學,2008,36(33):14359-14374.
[4]王啟平.BP神經(jīng)網(wǎng)絡在我國糧食產(chǎn)量預測中的應用[J].預測,2002,21(3):79-80.
[5]禹建麗,黎 婭.基于人工神經(jīng)網(wǎng)絡的糧食產(chǎn)量預測模型[J].河南農(nóng)業(yè)科學,2005(7):44-46.
[6]Vapnik V.The nature of statistical learning theory[M].New York:Springer-Verlag,2000.
[7]劉 涵,劉 丁,李 琦.基于支持向量機的混沌時間序列非線性預測[J].系統(tǒng)工程理論與實踐,2005(9):94-99.
[8]曲文龍,樊廣佺,楊炳儒.基于支持向量機的復雜時間序列預測研究[J].計算機工程,2005,31(23):1-3.
[9]羅正根.機器學習新方法:支持向量機[J].湖南農(nóng)業(yè)大學學報:社會科學版,2009(2):111-114.
[10]李曉東,席升陽,潘 立.基于最小二乘支持向量機的中國糧食產(chǎn)量預測模型研究[J].水土保持研究.2007,14(6):321-324.
[11]任勛益,王汝傳,謝永娟.基于支持向量機和最小二乘支持向量機的入侵檢測比較[J].計算機科學,2008,35(11):83-85.
[12]閻威武,邵惠鶴.支持向量機和最小二乘支持向量機的比較及應用研究[J].控制與決策[J],2003,18(3):358-360.
[13]袁哲明,張永生,熊潔儀.基于 SVR的多維時間序列分析及其在農(nóng)業(yè)科學中的應用[J].中國農(nóng)業(yè)科學,2008,41(8):2485-2492.
[14]Kim H S,Eykholt R J D.Salas.Nonlinear dynamics,delay times and embedding windows[J].Physica D,1999(127):48-60.
Study on the support vector machines model of grain production prediction
XIANG Chang-shenga,ZHOU Zi-yingb,WU Li-nab
(a.College of Orient Science & Technology; b.College of Resources & Environment,Hunan Agricultural University,Changsha 410128,China)
The grain production is complicated and unpredictable.In attempting to predict time series data,statistical methods are the major research stream in tradition,however,the factor of time is often overlooked in tradition model.In this paper,a model with multi-input and single output was proposed based on improved support vector machines(SVM)using leave one out for cross validation.China grain production data sets are predicted using this method; the results show that the SVM predictor has higher precision and greater generalization ability.
grain; production prediction; support vector machines; time series
F323.5
A
1009-2013(2010)01-0006-05
2009-11-16
“十一五”國家科技支撐計劃(2008BADA 4B108)
向昌盛(1971─),男,湖南懷化人,副教授,博士,主要從事計算數(shù)學、智能預測研究。
李東輝