張永生
摘要對(duì)支持向量機(jī)回歸(SVR)在害蟲預(yù)測(cè)預(yù)報(bào)中的應(yīng)用進(jìn)行了研究。用一步預(yù)測(cè)法對(duì)1個(gè)害蟲發(fā)生量樣本集進(jìn)行預(yù)測(cè),結(jié)果表明:SVR在所有參比模型中預(yù)測(cè)精度最高,具有較強(qiáng)的泛化推廣能力,在害蟲預(yù)測(cè)預(yù)報(bào)領(lǐng)域具有廣泛的應(yīng)用前景。
關(guān)鍵詞害蟲;預(yù)測(cè)預(yù)報(bào);支持向量機(jī);非線性
中圖分類號(hào)S431.9文獻(xiàn)標(biāo)識(shí)碼A文章編號(hào) 1007-5739(2009)14-0147-02
傳統(tǒng)的害蟲預(yù)測(cè)預(yù)報(bào)方法如多元回歸、聚類分析、判別分析等均是線性方法,然而,在大多數(shù)情況下,預(yù)報(bào)因子與害蟲發(fā)生之間并不是簡(jiǎn)單的線性關(guān)系,而呈高度的非線性,傳統(tǒng)的線性預(yù)測(cè)方法顯然是不適合的。人工神經(jīng)網(wǎng)絡(luò)(artificial neural networks,ANN)具有很好的非線性逼近能力,在害蟲發(fā)生預(yù)測(cè)中已獲得廣泛應(yīng)用,但ANN本身存在基于經(jīng)驗(yàn)最小化、模型結(jié)構(gòu)難以確定、易于出現(xiàn)過度訓(xùn)練和訓(xùn)練不足、陷入局部最小、對(duì)連接權(quán)初值敏感、過度依賴設(shè)計(jì)技巧等諸多缺陷。
1995年提出的支持向量機(jī)(support vector machine,SVM)是在統(tǒng)計(jì)學(xué)習(xí)理論基礎(chǔ)上發(fā)展起來的新一代機(jī)器學(xué)習(xí)算法,是機(jī)器學(xué)習(xí)領(lǐng)域的集大成者[1-3]。它包括分類(suppose vector classification,SVC)和回歸(support vector regression,SVR)2大類,最初用于模式識(shí)別(SVC),隨Vapnik 的不敏感損失函數(shù)的引入,已擴(kuò)展到用于非線性時(shí)間序列分析或非線性回歸分析(SVR)[1-3]。與ANN等其他學(xué)習(xí)方法相比,SVM基于結(jié)構(gòu)風(fēng)險(xiǎn)最小,較好地解決了非線性、過學(xué)習(xí)、維數(shù)災(zāi)難、局部極小點(diǎn)、小樣本等實(shí)際問題,泛化推廣能力優(yōu)異[4-6]。SVM的理論和應(yīng)用研究目前均發(fā)展迅速,已應(yīng)用于許多領(lǐng)域,但在害蟲預(yù)測(cè)預(yù)報(bào)中的應(yīng)用幾乎沒有報(bào)道。本文通過實(shí)例,對(duì)SVM在害蟲預(yù)測(cè)預(yù)報(bào)中的應(yīng)用進(jìn)行了研究。
1SVR基本原理
回歸分析又稱函數(shù)估計(jì),它要解決的問題是:根據(jù)給定的樣本數(shù)據(jù)集{(xi,yi)|i=l,…k},其中xi為預(yù)報(bào)因子值,yi為預(yù)報(bào)對(duì)象值,尋求一個(gè)反映樣本數(shù)據(jù)的最優(yōu)函數(shù)關(guān)系y=f(x)。這里的最優(yōu)是指按某一規(guī)定的誤差函數(shù)計(jì)算,所得函數(shù)關(guān)系對(duì)樣本數(shù)據(jù)集擬合的“最好”(累計(jì)誤差最小),SVM 回歸中常用ε-不靈敏誤差函數(shù)(ε≥0)。如果所得函數(shù)關(guān)系y=f(x)是線性函數(shù),則稱線性回歸,否則為非線性回歸。
SVM基本思想為:首先將輸入空間中線性不可分的樣本集通過某種非線性函數(shù)關(guān)系映射到一個(gè)高維特征空間(Hilbert空間),以使其在該空間中線性可分,然后在這個(gè)新空間中尋找最優(yōu)線性分類面。SVM起初是用于解決線性可分情況下2類樣本的分類問題(SVC),其核心思想是找到一個(gè)最優(yōu)分類超平面w·x+b=0,使2類樣本的分類間隔最大化。SVR與SVC相似,但不同的是:SVR的樣本點(diǎn)只有一類,所尋求的最優(yōu)超平面不是使2類樣本點(diǎn)分得“最開”,而是使所有樣本點(diǎn)離超平面的距離最小,這時(shí)樣本點(diǎn)都在2條邊界線之間,求最優(yōu)回歸超平面同樣等價(jià)于求最大間隔。對(duì)于線性回歸問題,給定樣本集(xi,yi),其中i=1,…,n;x∈Rd;y∈R,問題變?yōu)閷で笠粋€(gè)最優(yōu)超平面,使得在給定精度ε(ε≥0)條件下可以無誤差的擬合y,即所有樣本點(diǎn)到最優(yōu)超平面的距離都不大于ε;考慮到允許誤差的情況,可引入松弛變量ξ和ξ*≥0以及懲罰參數(shù)C>0,其尋求最優(yōu)回歸超平面的問題轉(zhuǎn)化求解如下一個(gè)二次凸規(guī)劃問題:將該優(yōu)化問題轉(zhuǎn)化成對(duì)偶問題后可解得最優(yōu)回歸函數(shù)為:f(x)=w·x+b=■(αi-αi*)(x·xi)+b,其中0≤αi,αi*≤C。
僅有少部分樣本的Lagrange乘子α不為零,因此決定該最優(yōu)回歸超平面的樣本點(diǎn)只能是這些支持向量。對(duì)于非線性回歸問題,可通過核函數(shù)變換將樣本映射到一個(gè)高維特征空間中用線性回歸來解決。通常,特征空間具很高甚至無窮維數(shù),致使空間變換后計(jì)算量巨增而面臨維數(shù)災(zāi)難等問題。幸運(yùn)的是SVM中待解對(duì)偶問題只包含一個(gè)變換后特征空間內(nèi)積運(yùn)算,而這種運(yùn)算能在原空間中通過核函數(shù)來實(shí)現(xiàn)。根據(jù)Mercer定理可構(gòu)造系列核函數(shù),常見的核函數(shù)有線性核函數(shù)、多項(xiàng)式核函數(shù)、徑向基核函數(shù)和雙曲正切核函數(shù)等[1-3]。
2SVR建模的方法及步驟
使用LIBSVM2.8支持向量機(jī)軟件包,包含svmscale、svmtrain、svmpredict、gridregression.py等常用程序。svmscale用于對(duì)原始數(shù)據(jù)規(guī)格化;svmtrain用于建立預(yù)測(cè)模型,其參數(shù)t=0是線性核函數(shù),t=1是多項(xiàng)式核函數(shù),t=2是徑向基核函數(shù),t=3是雙曲正切核函數(shù);svmpredict利用svmtrain所建的模型進(jìn)行預(yù)測(cè);gridregression.py用于自動(dòng)搜索最佳懲罰參數(shù)、靈敏度及徑向?qū)挾鹊群撕瘮?shù)參數(shù)。采用LIBSVM建模的一般步驟是:①按LIBSVM要求的數(shù)據(jù)格式準(zhǔn)備數(shù)據(jù)集;②svmscale對(duì)數(shù)據(jù)規(guī)格化;③選擇核函數(shù);④gridregression.py搜索最佳核函數(shù)參數(shù);⑤ svmtrain訓(xùn)練建模;⑥svmpredict進(jìn)行預(yù)測(cè)[7]。
3實(shí)例分析
山東臨沂1958~1973年歷年第2代大豆造橋蟲幼蟲發(fā)生量與7月下旬平均氣溫及雨量見表1[7]。由于評(píng)價(jià)一個(gè)預(yù)測(cè)模型的好壞,應(yīng)主要考察其預(yù)測(cè)能力而非回代擬合結(jié)果,因此,本實(shí)例只進(jìn)行預(yù)測(cè)。為避免單個(gè)樣本預(yù)測(cè)的偶然性,以最后5年(1969~1973)作為預(yù)測(cè)樣本,在預(yù)測(cè)第i年時(shí),前i-1年數(shù)據(jù)作為學(xué)習(xí)樣本參與建模訓(xùn)練,其后續(xù)未來年份數(shù)據(jù)不得參與建模訓(xùn)練;在預(yù)測(cè)第i+1個(gè)樣本時(shí),第i個(gè)樣本加入訓(xùn)練樣本(一步預(yù)測(cè))。另外,多元線性回歸(multiple linear regression,MLR)和時(shí)間序列趨勢(shì)分析(包括一次滑動(dòng)平均、一次指數(shù)平滑、線性回歸、二次滑動(dòng)平均、三次指數(shù)平滑等5種模型)作為參比模型進(jìn)行了預(yù)測(cè)。預(yù)測(cè)結(jié)果優(yōu)劣采用均方誤差(mean squared error,MSE)作為評(píng)價(jià)指標(biāo):MSE=■,式中,y為真值,■為預(yù)測(cè)值,n為預(yù)測(cè)樣本數(shù)。MLR和時(shí)間序列趨勢(shì)分析(默認(rèn)參數(shù)設(shè)置)由DPS6.55給出[8];SVR由LIBSVM2.8給出,原始變量經(jīng)svmscale規(guī)格化到[-1,1],gridregression.py以留一法尋優(yōu)后建模預(yù)測(cè)。
第2代大豆造橋蟲幼蟲發(fā)生量一步預(yù)測(cè)結(jié)果如表2所示。從MSE可看出,SVR無論采用哪種核函數(shù)(t=2的預(yù)測(cè)精度最高),預(yù)測(cè)精度均高于MLR與時(shí)間序列趨勢(shì),表明SVR具有較強(qiáng)的泛化推廣能力。MLR的預(yù)測(cè)精度遠(yuǎn)差于SVR,表明樣本集屬于非線性動(dòng)態(tài)系統(tǒng),預(yù)報(bào)因子與發(fā)生量之間呈現(xiàn)高度的非線性關(guān)系,用線性模型預(yù)測(cè)是不合適的。
4討論
選用不同的核函數(shù),SVR的預(yù)測(cè)精度不同,甚至相差很大,說明核函數(shù)的選擇對(duì)預(yù)測(cè)的結(jié)果影響比較大。目前,核函數(shù)及其參數(shù)的選擇還沒有一個(gè)統(tǒng)一的模式,只能憑借經(jīng)驗(yàn)、實(shí)驗(yàn)對(duì)比、大范圍的搜尋來進(jìn)行,LIBSVM中的gridregress-ion.py只是以n-fold交叉驗(yàn)證(其極限是留一法)在一定范圍內(nèi)對(duì)核函數(shù)參數(shù)進(jìn)行尋優(yōu)。SVR另一個(gè)缺點(diǎn)是不存在一個(gè)解析的表達(dá)式,對(duì)因子欠缺解釋能力。
以上研究表明,SVR應(yīng)用于害蟲預(yù)測(cè)預(yù)報(bào)是可行的,是一個(gè)值得探討和應(yīng)用的方法。對(duì)于害蟲的長(zhǎng)期預(yù)報(bào),如果能選擇合適的因子和預(yù)測(cè)模型,不僅可提高預(yù)測(cè)精度,更能從生物學(xué)意義角度探索,揭示隱含在昆蟲生態(tài)系統(tǒng)內(nèi)部的某些規(guī)律,進(jìn)一步把握事物發(fā)展的未來。
5參考文獻(xiàn)
[1] LIANG Y C,SUN Y F. An improved method of support vector machine and its applications to financial time series forecasting[J]. Progress in Natural Science,2003,13(9):696-700.
[2] THISSENA U,BRAKELA R VAN,WEIJERB A P DE,et al.Using support vector machines for time series prediction[J].Chemometrics and Intelligent Laboratory Systems,2003(69):35-49.
[3] 孫德山,吳今培,肖健華.SVR在混沌時(shí)間序列預(yù)測(cè)中的應(yīng)用[J].系統(tǒng)仿真學(xué)報(bào),2004,16(3):519-521.
[4] V VAPNIK. The nature of statistical learning theory[M].New York:Springer Verlag Press,1995.
[5] 鄧乃揚(yáng),田英杰.數(shù)據(jù)挖掘中的新方法——支持向量機(jī)[M].北京:科學(xué)出版社,2004.
[6] CRISTIANINI N,SHAWE-TAYLORAYLOR J.支持向量機(jī)導(dǎo)論[M].李國正,王猛,曾華軍,譯.北京:電子工業(yè)出版社,2004.
[7] 張孝羲.昆蟲生態(tài)及預(yù)測(cè)預(yù)報(bào)[M].北京:中國農(nóng)業(yè)出版社,1985.
[8] 唐啟義,馮明光.實(shí)用統(tǒng)計(jì)分析及其DPS數(shù)據(jù)處理系統(tǒng)[M].北京:科學(xué)出版社,2002.