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