劉艷偉,閔惠學(xué),酈 英
(1.浙江大學(xué),浙江杭州310058;2.浙江省水文局,浙江杭州 310009)
支持向量機在湄池站洪峰水位預(yù)報中的應(yīng)用
劉艷偉1.2,閔惠學(xué)2,酈 英2
(1.浙江大學(xué),浙江杭州310058;2.浙江省水文局,浙江杭州 310009)
支持向量機(SVM,Support Vector Machines)是在統(tǒng)計學(xué)習(xí)理論中發(fā)展起來的一種處理非線性分類和非線性回歸的有效方法。感潮河段洪水位是復(fù)雜的洪、潮非線性組合問題,本文嘗試將SVM方法應(yīng)用于感潮河段湄池站洪峰水位預(yù)報,通過選取湄池站歷史洪水中分別反映上游來水和下游頂托作用的預(yù)報因子,建立湄池站洪峰水位的SVM回歸模型,獲得了較好預(yù)報效果。
支持向量機;非線性回歸;感潮河段;水位預(yù)報
感潮河段的洪水過程受上游徑流和下游潮汐雙重影響,進(jìn)行準(zhǔn)確的水位預(yù)報十分困難。由于洪潮相互作用機理復(fù)雜,人們對其認(rèn)識尚有局限,還不能進(jìn)行有效的數(shù)學(xué)模型描述?;诮y(tǒng)計理論的回歸分析方法由于對斷面資料要求不高,不需考慮河段洪水過程的物理意義,簡單實用,目前在感潮河段洪峰水位預(yù)報中應(yīng)用較為廣泛。但是感潮河段水位系列在時序上具有相依性、突變性和隨機性等復(fù)雜非線性特征[1],而目前大多數(shù)回歸分析方法是建立在線性相關(guān)基礎(chǔ)上的(如近年來使用較多的多元逐步回歸方法)[2~3],用于處理此類復(fù)雜的非線性問題時具有較大的局限性。
支持向量機(SVM,Support Vector Machines)是20世紀(jì)90年代提出的一種處理非線性分類和非線性回歸的新的通用學(xué)習(xí)方法[4~5],它是建立在Vapnik等人提出的統(tǒng)計學(xué)理論[6~7]的VC維(Vapnik-Chervonenks Dimension)理論和結(jié)構(gòu)風(fēng)險最小原理(Structure Risk Minimization)基礎(chǔ)上的,能較好地解決樣本空間中的高度非線性分類和回歸等問題,已成功的應(yīng)用于分類、函數(shù)逼近和時間序列預(yù)測等方面。本文嘗試將SVM應(yīng)用于感潮河段湄池站的洪峰水位預(yù)測,通過選取湄池站分別反映上游來水和下游頂托作用的預(yù)報因子,利用歷史洪水樣本資料構(gòu)造湄池站洪峰水位的SVM回歸預(yù)報模型,預(yù)測湄池站洪峰水位,預(yù)報精度優(yōu)良。
SVM解決非線性回歸問題的基本思路是基于Mercer核展開定理[9],通過非線性變換Φ,將樣本空間映射到一個高維乃至無窮維的線性特征空間(Hilbert空間),在高維特征空間通過一個線性超平面實現(xiàn)線性回歸,使在特征空間中可以應(yīng)用線性學(xué)習(xí)的方法解決樣本空間中的高度非線性分類和回歸等問題。
假設(shè)給定的樣本數(shù)據(jù)集為:
(x1,y1),(x2,y2),...,(xk,yk),其中,xi∈RN,為N維向量,yi∈R。在SVM回歸中,輸入樣本xi首先用非線性變換映射到一個m維的特征空間,然后在這個特征空間中建立一個線性模型,用公式表示為:
式中,f(x,w)是估計函數(shù); w為權(quán)向量;Φ(x)為非線性映射集合;b為閾值。
其正確性是由損失函數(shù)來衡量的,SVM回歸引入一種新的損失函數(shù)叫做ε(不敏感損失函數(shù)),它是由Vapnik提出的。同時考慮到允許擬合誤差的情況,引入松弛因子ξi≥0,ξ*i≥0,用于表示引入訓(xùn)練集的誤差。根據(jù)結(jié)構(gòu)風(fēng)險化最小原則即要尋求最優(yōu)回歸超平面使:
式中,常數(shù)C(C>0)為懲罰系數(shù),表示控制訓(xùn)練誤差的代價。這樣,問題轉(zhuǎn)化為求解如公式(2)一個二次凸規(guī)劃問題。由于目標(biāo)函數(shù)和約束條件都是凸的,根據(jù)最優(yōu)化理論,這一問題存在唯一全局最小解。公式(2)的優(yōu)化問題通過引入拉格朗日函數(shù)將其轉(zhuǎn)化為對偶問題,通過解對偶問題得到公式(2)的解:
這就是SVM方法最終確定的非線性回歸函數(shù)。其中,αi、α*i為拉格朗日乘子,nSV為支持向量的個數(shù)。αi、α*i和b通過約束條件求得,為確定最優(yōu)超平面的參數(shù)。
支持向量機理論只考慮高維特征空間的點積運算Κ(xi,x)=Φ(xi)?Φ(x),而不直接使用函數(shù)Φ,從而巧妙地解決了因Φ未知而w無法顯式表達(dá)的問題。已經(jīng)證明,只要滿足Mercer條件的對稱函數(shù)即可作為核函數(shù),常用的核函數(shù)有:
上述求解過程有多種高效算法和成熟的計算機程序可資利用[10]。本文所應(yīng)用的核心軟件為臺灣大學(xué)林智仁(Lin Chih-Jen)副教授等開發(fā)設(shè)計的LibSVM[11],它是一個簡單、易于使用和快速有效的SVM模式識別與回歸的軟件包,不但提供了編譯好的可在Windows系列系統(tǒng)的執(zhí)行文件,還提供了源代碼,方便改進(jìn)、修改以及在其它操作系統(tǒng)上應(yīng)用。該軟件為非商業(yè)應(yīng)用的免費軟件。
湄池站位于浦陽江下游感潮河段,該站洪水位受浦陽江上游來水和錢塘江下游洪、潮水頂托的共同影響。諸暨水文站位于浦陽江中游,距離湄池站約30 km,其實測資料能準(zhǔn)確反映浦陽江流域來水情況。聞家堰水文站位于浦陽江與錢塘江匯合口附近,距離湄池站大約40 km,觀測資料能較好的反映錢塘江洪、潮頂托影響。根據(jù)資料情況,構(gòu)建預(yù)報因子如下:
(1)諸暨洪峰水位X1和漲幅X2,反映上游來水影響;
(2)諸暨洪峰出現(xiàn)前的聞家堰最高潮位因子X3,反映下游洪潮頂托影響;
(3)聞家堰高潮位前漲潮潮差因子X4。歷史資料表明,相同量級的諸暨站洪水與下游聞家堰站不同洪、潮以及江道情況組合,會使湄池洪峰水位出現(xiàn)較大差異。據(jù)分析,聞家堰高水位主要由潮水所致時,X4的值較大,由富春江來水所致時,X4的值較小。根據(jù)聞家堰漲潮歷時,當(dāng)潮型消失時X4取峰前3 h的漲幅。
本文以湄池站洪峰水位作為預(yù)報對象,以X1、X2、X3和X4為預(yù)報因子,選取1984年(考慮到大型水利工程對河道狀況的影響,選取陳蔡水庫建成后的資料)至2010年共26 a的洪水資料,構(gòu)建樣本數(shù)據(jù)集,共計選出38場洪水樣本。其中32場洪水作為訓(xùn)練集,另外的6場洪水作為檢驗集,不參加建模過程。
模型構(gòu)建的過程也就是選擇合適的核函數(shù),并通過對樣本集的訓(xùn)練最終確定最優(yōu)模型參數(shù)的過程。模型的優(yōu)劣以均方差(MSE)和相關(guān)系數(shù)(r2)作為判別指標(biāo),公式如下:
3.2.1 選擇核函數(shù)
核函數(shù)的選擇[15]目前國際上還沒有形成一個統(tǒng)一的模式,一般憑借經(jīng)驗。LibSVM提供了常用的3種非線性核函數(shù),本文根據(jù)試驗對比最終選定徑向基函數(shù)作為核函數(shù)建立SVM模型。
3.2.2 確定模型參數(shù)
LibSVM軟件對SVM所涉及的參數(shù)調(diào)節(jié)相對比較少,提供了很多的默認(rèn)參數(shù),對于徑向基核函數(shù)的回歸問題需要人為優(yōu)選確定的參數(shù)主要有懲罰系數(shù)C、損失函數(shù)ε和核參數(shù)γ。LibSVM提供了交互檢驗(Cross Validation)的參數(shù)優(yōu)選功能:將原始數(shù)據(jù)分成K組(一般均等分,K大于等于2),將每組數(shù)據(jù)分別做一次驗證集,其余的K-1組數(shù)據(jù)作為訓(xùn)練集,這樣會得到K個模型,用某組參數(shù)訓(xùn)練K個模型得到的K個評分結(jié)果(MSE和r2)的平均值作為最終的評分結(jié)果,并以此為判斷參數(shù)優(yōu)劣的指標(biāo),通過逐步篩選的方法調(diào)試參數(shù),直至達(dá)到最優(yōu)結(jié)果。交互檢驗方法可以有效的避免過學(xué)習(xí)以及欠學(xué)習(xí)狀態(tài)的發(fā)生,最后得到的結(jié)果也比較具有說服力。
通過以上方法,取k=5對訓(xùn)練集進(jìn)行參數(shù)逐步逼近訓(xùn)練,得到最佳評分結(jié)果的SVM回歸模型,表1列出了模型參數(shù)以及評分結(jié)果。可以看出,對訓(xùn)練集的回報效果和對檢驗集的預(yù)測效果都很理想,相關(guān)系數(shù)都在0.99以上,均方差都不到0.02,這表明建立的SVM回歸預(yù)報模型具有較好的穩(wěn)定性。
3.2.3 精度評價
表2列出了SVM模型對訓(xùn)練樣本的回報和檢驗樣本的預(yù)測結(jié)果,以洪峰水位絕對誤差小于0.2 m作為合格標(biāo)準(zhǔn)。由表可知,對訓(xùn)練集回報的合格率為30/32,平均絕對誤差0.006 m,最大誤差為0.29 m;對檢驗集預(yù)報的合格率為5/6,平均絕對誤差0.017 m,最大誤差為0.24 m。根據(jù)水文情報預(yù)報規(guī)范的有關(guān)規(guī)定,本方案達(dá)到甲級精度。
SVM方法是一種處理高度非線性問題的有效的機器學(xué)習(xí)方法,本文是支持向量機方法應(yīng)用于洪水位預(yù)測的初步嘗試,結(jié)果顯示:在受洪、潮等復(fù)雜因素影響的湄池站,通過選擇適當(dāng)?shù)念A(yù)報因子建立的SVM洪峰水位預(yù)報模型,具有較好的擬合精度,達(dá)到規(guī)范規(guī)定的甲等預(yù)報方案標(biāo)準(zhǔn),可用于作業(yè)預(yù)報。
表1 用SVM回歸方法建立湄池站洪峰水位預(yù)測模型的評價結(jié)果
由于SVM方法是通過對歷史樣本的不斷學(xué)習(xí)來建立預(yù)報模型的,SVM預(yù)報模型的建立過程就是對歷史樣本的自學(xué)習(xí)記憶過程。因此,用盡可能多的樣本參與訓(xùn)練,使預(yù)報模型包含比較完備
的支持信息,可以大大提高預(yù)報精度。建議在實際預(yù)報中適時增加新的樣本參與訓(xùn)練,不斷優(yōu)化預(yù)報模型。
表2 SVM回歸模型預(yù)測湄池站洪峰水位的結(jié)果
[1]張小琴,包為民.感潮河段預(yù)報方法淺析[J].水電能源科學(xué),2009,27(3):8-10.
[2]盧金利,俞昌都.逐步回歸法在臨海站洪水預(yù)報中的應(yīng)用[J].浙江水利科技,2001,(S):120-121.
[3]周文斌,車倩.多元線性回歸法在水文預(yù)報中的應(yīng)用[J].山西建筑,2009,35(1):359-360.
[4]Cristianini N and Shawa-Taylor J.An Introduction of Support Vector Machines and Other Kernel_based Learning Meth-ods[M].Cambridge:Cambridge University Press,2000.
[5]Burges C J.A tutorial on support vector machines for pattern recognition[J].Data Mining and Knowledge Discovery,1998,2:127-167.
[6]Vapnik V N.Statistical Learning Theory[M].New York:John Wiley&Sons,Inc.,1998.
[7]Vapnik V N.The Nature of Statistical Learning Theory[M].New York:Springer Verlag,2000.
[8]陳永義,俞小鼎,高學(xué)浩.處理非線性分類和回歸問題的一種新方法(I)-支持向量機方法簡介[J].應(yīng)用氣象學(xué)報,2004,15(3):345-354.
[9]Courant R and Hilbert D.Method of Mathematical Physics[M].New York:Springer Verlag,1953.
[10]http://www.kernel-machines.org
[11]http://www.csie.ntu.edu.tw/~cjlin/index.html
[12]盧敏,張展羽,馮寶平.支持向量機在徑流預(yù)報中的應(yīng)用探討[J].人民長江.2005,36(8):38-39.
[13]王景雷,吳景社,孫景生等.支持向量機在地下水位預(yù)報中的應(yīng)用研究[J].水利學(xué)報.2003,5:122-128.
[14]李智才,馬文瑞,李素敏等.支持向量機在短期氣候預(yù)測中的應(yīng)用[J].氣象.2006,32(5):57-61.
[15]朱樹先,張仁杰.支持向量機核函數(shù)選擇的研究[J].科學(xué)技術(shù)與工程.2008,8(16):4514-4517.
P731
A
1003-0239(2011)01-0072-05
2010-09-08
劉艷偉(1977-),女,工程師,主要從事水文情報預(yù)報工作。E-mail:lyanwei@163.com。