唐俊杰,何美儀
(華南師范大學 數(shù)學科學學院,廣東 廣州 510631)
基于遺傳算法與高斯過程回歸的蔬菜市場價格預測研究
唐俊杰,何美儀
(華南師范大學 數(shù)學科學學院,廣東 廣州 510631)
農產(chǎn)品市場價格的準確預測對農民生產(chǎn)銷售和政府調控具有重要的意義。選取廣州市2013年1月1日至2016年11月20日的32種蔬菜日價格數(shù)據(jù)和氣候數(shù)據(jù)作為訓練集,基于遺傳算法的動態(tài)特征選擇算法,建立高斯過程回歸模型并根據(jù)滾動交叉驗證法優(yōu)化模型參數(shù),對后42天的本地菜心日價格預測,預測得到平均絕對誤差為0.098元,平均相對誤差為1.15%。結果表明,依據(jù)這種預測策略建立的高斯過程回歸模型預測精度高,能很好地應用于本地菜心日價格預測。
市場價格;遺傳算法;高斯過程回歸;滾動交叉驗證;高精度預測
蔬菜是人們日常生活中不可或缺的食物之一,蔬菜產(chǎn)業(yè)也是農民收入的主要來源之一。由于受政策、氣候、替代品價格波動等因素的影響,蔬菜價格不穩(wěn)定且變化迅速,這就增大了蔬菜價格預測的難度。利用適當?shù)姆椒A測蔬菜價格,一方面,能夠為政府部門提供農業(yè)產(chǎn)業(yè)調控政策,穩(wěn)定“菜籃子”;另一方面,可以為農民生產(chǎn)和銷售提供建議。針對蔬菜價格的預測,很多學者應用了成熟的方法。孫素芬、羅長壽應用RBF神經(jīng)網(wǎng)絡預測香菇月度價格;[1]沈辰、穆月英利用時間序列確定性分析以及ARIMA模型對黃瓜、西紅柿、大白菜月度價格進行分析和預測;[2]信麗媛、許世衛(wèi)利用ARMA、灰度預測模型、X-12季節(jié)調整模型對天津蔬菜價格進行預測。[3]由于上述方法都只對蔬菜月度價格進行預測,而且月度蔬菜價格相對變化比較平穩(wěn),所以預測效果往往比較好。但是蔬菜日價格的變化相對蔬菜月度價格更加不穩(wěn)定,而且還會頻繁且敏感地受到許多外生沖擊的影響,如氣候及其他具有替代作用的蔬菜價格波動等等。基于對引入外生變量提高預測的精度和穩(wěn)定性的考慮,本文以廣州市本地菜心為例,建立一套對蔬菜價格進行高精度預測的方法,數(shù)據(jù)來源于廣州市價格監(jiān)測中心和廣東省氣候中心。本文在模型方面選擇應用近年發(fā)展起來的一種統(tǒng)計學習方法:高斯過程回歸。[4,5]高斯回歸過程有著嚴格的統(tǒng)計學理論支撐,對于處理高維度、非線性等復雜回歸問題具有很好的適應性,且其泛化能力強。這種方法與神經(jīng)網(wǎng)絡等模型相比具有容易實現(xiàn)、超參數(shù)自適應獲取以及輸出具有概率意義等優(yōu)點。
假設有訓練集D={( xi,yi)|i=1,2,…,n}=(x,y)和測試集,其中,為d維輸入向量,y為輸出向量,X=(x1,x2,…,xn)′為n×d維矩陣。高斯過程假設任意有限個輸入的隨機變量均具有聯(lián)合高斯分布,則高斯過程定義為:
其中x,z∈Rd為任意隨機變量,m(x)和k(x,z)分別為均值函數(shù)和協(xié)方差函數(shù)。
對于回歸預測問題y=f(x)+ε,ε~N(0,σ2),可以得到觀測值y的貝葉斯先驗分布為:
以及觀測值y和預測值f*的聯(lián)合貝葉斯先驗分布為:
其中K(X,X)=(Kij),i,j=1,2,…,n,其為n×n的協(xié)方差矩陣,Kij=K(xi,xj)用來度量xi和xj之間的相關性;k(x*,x*)表示測試集中觀測點x*關于自身的協(xié)方差;k(x*,X)表示測試集中觀測點x*與X之間的協(xié)方差矩陣。
對于協(xié)方差函數(shù)的計算,高斯回歸過程引入核函數(shù)方法,這種方法對非線性問題具有更好的擬合效果,常用的核函數(shù)有徑向基高斯核函數(shù)(或稱作平方指數(shù)核函數(shù))、多項式核函數(shù)、線性核函數(shù)等。本文采用多項式核函數(shù)計算協(xié)方差函數(shù),即
其中degree稱為多項式次數(shù),scale稱為尺度參數(shù),offset稱為位移參數(shù)。參數(shù)集合θ={scale,offset,σ2}稱為超參數(shù)。最優(yōu)超參數(shù)可通過極大似然法獲得,即通過建立訓練樣本條件概率的對數(shù)似然函數(shù)對超參數(shù)求偏導,再采用最速梯度下降優(yōu)化方法搜索出超參數(shù)的最優(yōu)解。計算訓練集樣本的條件概率的對數(shù)似然函數(shù)L(θ)=log(p(y|X,θ))可表示為:
本文采用廣州市價格監(jiān)測中心提供的2013年1月1日至2016年12月31日的32種蔬菜價格數(shù)據(jù),應用R語言計算32種蔬菜價格的相關性矩陣,并選取與本文研究對象本地菜心存在強線性相關性即pearson線性相關系數(shù)大于0.7的14種蔬菜。所選14種蔬菜與本地菜心之間的相關性檢驗結果如下表1所示。
表1 所選菜種與本地菜心的相關性檢驗結果
從上表1可知,挑選出來的14種菜與本地菜心之間存在強而顯著的相關關系,因此選取這14種菜運用到模型中以提高模型的預測精度。
雖然諸多的菜種價格中包含著更多的信息,但是根據(jù)方差—偏差權衡原理可知,由于所挑選的蔬菜價格之間存在比較強的相關性,將上面挑選的14種蔬菜價格全部作為輸入變量,容易出現(xiàn)數(shù)據(jù)冗余的情況,會出現(xiàn)過擬合情況從而導致預測精度降低?;谶@種考慮,本文采用主成分分析(PCA)對14種蔬菜價格進行數(shù)據(jù)降維。主成分分析的思想是將n維特征映射到k維上(k<n),這k維是全新的正交特征即稱為主成分。主成分是觀測變量的線性組合,而且這些主成分盡可能地保留原始數(shù)據(jù)集的信息。主成分分析的第一步為判斷主成分的個數(shù),本文依據(jù)Cattell碎石檢驗準則和平行分析準則來判斷主成分的合適個數(shù)。Cattell碎石檢驗準則認為,在碎石圖的變化最大處之上的主成分都可保留;而平行分析準則認為,若基于真實數(shù)據(jù)的某個特征值大于一組隨機數(shù)據(jù)矩陣相同大小相應的平均特征值的對應主成分應該保留。應用R語言對14種蔬菜價格進行主成分分析的帶平行分析的碎石圖如圖1所示。
從圖1可知,Cattell碎石檢驗準則表明,選擇4個主成分即可保留數(shù)據(jù)集的大部分信息;而平行分析準則表明,選擇3個主成分即可保留數(shù)據(jù)集的大部分信息。結合兩個判斷準則的分析結果,本文最終選擇3個主成分來保留14種蔬菜價格的大部分信息,其累計方差貢獻率為88%,理論上已經(jīng)達到主成分分析的要求。
圖1 帶平行分析的碎石圖
1.特征說明
考慮到蔬菜價格變動主要受環(huán)境、市場、政策、時間這四個因素的影響,且這些因素對蔬菜價格的偏自相關性一般在兩周內截斷,所以本文選取本地菜心的滯后1期至14期價格數(shù)據(jù)、14種蔬菜價格的主成分的滯后1期數(shù)據(jù)以及氣候因素逐日降水量和逐日平均溫度的滯后1期至14期數(shù)據(jù)作為模型建立的預測變量,選取本地菜心的當前價格數(shù)據(jù)作為模型建立的響應變量。
2.預測策略說明
首先,為了評估最終模型預測效果,本文選取時間在2016年11月20日之前的本地菜心價格數(shù)據(jù)及其對應預測變量作為訓練集,選取時間在2016年11月20日之后的本地菜心價格數(shù)據(jù)及其對應預測變量作為測試集,同時進一步考慮到直接利用整個訓練集進行單個模型的建立可能會發(fā)生過擬合問題,從而導致向外預測精度降低。所以,本文將采用時間序列的滾動交叉驗證法[6]進行模型測試誤差的估計以及模型參數(shù)的優(yōu)化工作。假設模型將每次向外進行h期預測作為目標,時間序列的滾動交叉驗證原理如下:
1)對于總訓練集D0={( Xi,yi)|i=1,2,…,T}(T為總訓練集長度),給定一個初始訓練集長度k,選擇觀測序號為1至k+j-1的觀測Dj={( Xj,yj)|i=1,2,…,k+j-1}作為所選訓練集,選擇觀測序號為k+j-1至k+j+h-2的h個觀測Dj′={( Xj,yj)|i=k+j-1,k+j,…,k+j+h-2} 作為所選驗證集。然后利用所選訓練集進行模型訓練及向外預測h期,并計算向外預測h步的殘差。
2)令 j=j+h-1不斷重復上訴操作直至k+j+h-2>T時停止。
3)根據(jù)每個驗證集中的預測殘差情況計算殘差平方和MSE用于估計測試集預測誤差情況。
其中,本文基于業(yè)務需求,將向外預測期數(shù)h定為14天,初始訓練集長度k定為730天。
3.基于遺傳算法[7]的動態(tài)特征選擇模型
在依據(jù)前面的策略建立高斯過程回歸模型之前,一方面,考慮到預測變量的特征維度比較高,特征之間可能存在高相關性,全部特征作為輸入變量容易出現(xiàn)過擬合問題;[8]另一方面,考慮到所獲取數(shù)據(jù)的時間跨度比較長,本地菜心價格數(shù)據(jù)有可能在其中的某些時間點受到嚴重的外生沖擊,例如政府干預性政策、不尋常氣候因素等影響,從而導致時間序列的趨勢結構甚至與其他因素之間的影響模式發(fā)生劇烈改變。[9]
基于這兩種考慮,本文在滾動交叉驗證的基礎上,采用基于遺傳算法的動態(tài)特征選擇策略。遺傳算法的研究對象是種群,即含有許多個體的集合,對于特征選擇問題,這里一個個體代表一個特征集合,種群代表這些特征集合的集合。利用遺傳算法可以從子代中找到全局最優(yōu)的特征集合,從而達到特征選擇的效果。結合時間序列的滾動交叉驗證,基于遺傳算法的動態(tài)特征選擇模型所涉及的主要流程如下:
Step1:(編碼)依據(jù)特征順序進行編碼,“0”表示該特征未被選擇,“1”表示該特征已被選擇。
Step2:(產(chǎn)生初始種群)設置種群規(guī)模N,交叉概率PC,變異概率Pm;隨機產(chǎn)生初始種群X(0)={x1,x2,…,xN},每個個體表示染色體的基因型;設置當前代數(shù)為0。
Step3:(個體評價)根據(jù)滾動交叉驗證每次迭代的所選訓練集Dj={( Xj,yj)|i=1,2,…,k+j-1}計算當前群體中每個個體x1的適應度F(x1)以評價個體的好壞,并判斷是否滿足設定的優(yōu)化準則,若滿足,則輸出最佳個體及其代表的最優(yōu)特征集合,并結束算法;若不滿足,則轉入下一步。
Step4:(種群進化)
1)(選擇)依據(jù)適應度在父代X(t)中選擇M個再生個體組成的中間代XS(t),適應度高的個體被選中的概率高;反之,適應度低的個體被選中的概率低,甚至可能被淘汰。
2)(交叉)根據(jù)交叉概率Pc對中間代Xs(t)的m/2對母體進行交叉,生成中間交叉代Xc(t),它由m個個體組成。
3)(變異)根據(jù)變異概率Pm對中間交叉代的M個個體進行變異,生成中間變異代Xm(t)。
Step5:(循環(huán)計算適應度)由交叉和變異產(chǎn)生新一代種群,返回step3。
其中,本文采用的適應度為根據(jù)所選的特征集合以及所選訓練集計算得到的BIC值,采用的優(yōu)化準則為世代數(shù)超過設定值50代,種群規(guī)模N設置為200,交叉概率Pc設置為20%,變異概率Pm設置為0.01。部分所選訓練集的特征選擇情況如下表2所示(注釋:cx(i)為菜心價格滯后i期序列,wd(i)為逐日溫度滯后i期序列,js(i)為逐日降水量滯后i期序列, 為14種蔬菜價格的第i個主成分的滯后1期序列)。
表2 部分所選訓練集的特征選擇情況
4.模型訓練及模型參數(shù)優(yōu)化
基于遺傳算法的動態(tài)特征選擇算法選出的每一個所選訓練集的最優(yōu)特征集合,分別建立基于多項式核函數(shù)的高斯過程回歸模型。在模型的建立過程中,需要設定初始誤差e的方差var(ε)。模式參數(shù)var(ε)的確定十分關鍵,因為var(ε)的大小直接影響模型的預測效果。若var(ε)偏大,容易導致預測結果的方差較大,從而使預測結果不穩(wěn)定;若var(ε)偏小,容易導致預測結果的偏差較大,從而使預測結果精度欠佳。為了解決這個問題,本文采用網(wǎng)格搜索法對模型參數(shù)var(ε)進行優(yōu)化求解。本文將var(ε)的參數(shù)值范圍設定在[0.1,1]內,以間距0.1進行網(wǎng)格搜索,分別得到各個參數(shù)值下的驗證集均方誤差和測試集均方誤差如下圖2所示。
圖2 取各參數(shù)值的均方誤差
從圖2可知,無論是驗證集還是測試集,var(ε)參數(shù)值在[0.1,1]范圍內的均方誤差均比較接近,因此直接選定var(ε)為0.5。按照前面的策略建立模型,得到驗證集和測試集的均方誤差分別為0.0536和0.0201,驗證集和測試集的平均絕對值誤差分別為0.1272和0.0989,誤差都很小。應用建立的模型對2016年11月21日至2016年12月31日的本地菜心日價格進行預測,真實值與預測值的時序如下圖3所示。
圖3 后42天本地菜心日價格預測情況
由圖3可知,從總體水平上看,測試集的預測值圍繞實際值上下無規(guī)律小幅度波動,且實際值基本落在預測值的95%置信區(qū)間內,其均方誤差也比較小,誤差在可接受范圍內。
應用本地菜心日價格預測模型,對2016年11月21日至2016年12月31日的本地菜心日價格進行預測,部分預測結果即前一周的本地菜心日價格預測結果如下表3所示。
表3 前一周的本地菜心日價格預測效果
表3為2016年11月21日至2016年12月31日前一周本地菜心日價格的預測效果。根據(jù)這六周的預測情況可知,測試集數(shù)據(jù)的平均絕對誤差為0.098元,最大絕對誤差為0.445元,平均相對誤差為1.15%,最大相對誤差為4.65%,這說明建立的高斯過程回歸模型的誤差比較小,并且對測試集數(shù)據(jù)具有很好的適應性,可以將該模型應用到本地菜心日價格的預測工作。[10]
上述分析結果表明,利用這種動態(tài)高斯過程回歸模型對本地菜心日價格進行預測具有預測精度高以及適應性高的優(yōu)點。同時,考慮到與本地菜心之間有較強線性相關性的14種蔬菜的預測問題,本文利用本地菜心在后六周的日價格預測值,以本地菜心作為預測變量,以14種蔬菜作為響應變量,分別建立14個線性回歸模型并對這14種蔬菜后六周的日價格進行預測。圖4為通過這種方法得到的本地白菜的后六周價格預測情況結果。
圖4 后42天本地白菜日價格預測情況
由圖4可知,應用這種方法對本地白菜的日價格進行預測的誤差也較小,從側面說明本地菜心與本地白菜之間的相關性較高,這種預測方法的誤差也能控制在可接受范圍內。
本文對廣州市2013年1月1日至2016年12月31日共1 461組本地菜心日價格數(shù)據(jù)進行研究,首先將這些數(shù)據(jù)分成訓練集和測試集,對訓練集建立基于遺傳算法的動態(tài)特征選擇算法,然后建立基于線性核函數(shù)的高斯過程回歸模型并結合時間序列的滾動交叉驗證方法對模型的參數(shù)var(ε)進行網(wǎng)格搜索優(yōu)化。后六周的本地菜心日價格預測結果表明,依據(jù)這種預測策略建立的高斯過程回歸模型可以很好地應用于本地菜心日價格預測工作,平均絕對誤差為0.098元,平均相對誤差為1.15%,誤差都很小。另外,運用已經(jīng)建立的高斯過程回歸模型以及蔬菜之間的線性回歸模型能夠預測與本地菜心具有強相關性蔬菜的日價格,這對市場價格調控、輔助菜商菜農經(jīng)營等具有十分重要的意義。
[1]孫素芬,羅長壽.基于RBF神經(jīng)網(wǎng)絡的蔬菜價格預報研究[J].中國農學通報,2011,(28):269-273.
[2]沈辰,穆月英.我國蔬菜價格的時間序列變動分析[J].統(tǒng)計與決策,2011,(16).
[3]信麗媛,許世衛(wèi),王麗娟.天津市蔬菜價格的周期性波動特征分析及短期預測[J].中國食物與營養(yǎng),2016,(4):46-49.
[4]何志昆,劉光斌,趙曦晶,王明昊.高斯過程回歸方法綜述[J].控制與決策,2013,(18).
[5]許雪.高斯過程回歸方法及其預測模型[J].科技教育,2016,(11).
[6]Hyndman R J,Athanasopoulos G.Forecasting Princiles and Practice[J].London Bowker-Saur.Pharo,2014.
[7]劉元寧,王剛,朱曉冬,趙正東,陳慧靈.基于自適應多種群遺產(chǎn)算法的特征選擇[J].吉林大學學報(工業(yè)版),2011,(11).
[8]王峰,張舒瑋.基于狀態(tài)空間模型的中國煤炭價格長期趨勢預測[J].統(tǒng)計與信息論壇,2011,(8).
[9]馬佳,馬瑩,趙京音.都市綠葉蔬菜價格預測預警研究的思考[J].中國農學通報,2016,(30):188-192.
[10]陳彥峰.近年蔬菜價格上漲原因分析以蔬菜價格中長期走勢預測[J].中國瓜菜,2008,(1):47-48.
Abstract:The forecast of the agricultural product market price is of great importance to farmers’agricultural product sales and governmental regulation.We select the price data of 32 type’s vegetables and climate data of Guangzhou from January 1,2013 to November 20,2016 as training data set,we build the dynamic feature selection algorithm based on genetic algorithm,establish the Gaussian Process Regression and optimize model parameters by rolling crossing-validation.Then we use this model to forecast cabbage`s price for 42 days.The results show that the mean absolute error is 0.098 yuan and mean relative error is 1.15%,which also reflects the fact that the prediction accuracy of the Gaussian Process Regression is high and this model can be applied to local cabbage price’s forecast.
Key words:market price;genetic algorithm;Gaussian Process Regression;rolling crossing-validation;high accuracy prediction
[責任編輯:王 帥]
Vegetable Market Price Forecasting Based on GeneticAlgorithm and Gaussian Process Regression
TANG Jun-jie;HE Mei-yi
(School of Mathematical Sciences,South China Normal University,Guangzhou 510631,China)
F323.7
A
1671-6671(2017)05-0080-08
2017-07-01
廣州市科技計劃項目(2014J4100018)、廣東省氣象局科技項目(2014Q04)
唐俊杰(1995-),男,廣東佛山人,華南師范大學數(shù)學科學學院本科生,研究方向:數(shù)學與應用數(shù)學。何美儀(1996-),女,廣東中山人,華南師范大學數(shù)學科學學院本科生,研究方向:數(shù)學與應用數(shù)學。