王龍強(qiáng)
(河北省水利水電第二勘測(cè)設(shè)計(jì)研究院,石家莊 050021)
降水、氣溫、徑流等多種因子具有很大的不確定性,并影響著中長(zhǎng)期的水文預(yù)報(bào)情況。來(lái)水量在年際間具有較大的隨機(jī)性和不確定性,在影響來(lái)水量的眾多因素之間也存在著復(fù)雜關(guān)系,眾多因素之間的相互作用關(guān)系很難利用常規(guī)方法進(jìn)行比較準(zhǔn)確的表達(dá)。本文通過(guò)來(lái)水量模型的建立,利用某河45年的徑流資料對(duì)來(lái)年來(lái)水量進(jìn)行預(yù)測(cè),并與實(shí)際值進(jìn)行比較。
來(lái)水量預(yù)測(cè)模型是反應(yīng)影響來(lái)水量的因素與來(lái)水量之間的關(guān)系。本文采用用于非線性建模與預(yù)測(cè)的支持向量回歸機(jī)模型。
以來(lái)水量預(yù)測(cè)模型為例,模型訓(xùn)練輸入為影響因素。由影響因素對(duì)應(yīng)的來(lái)水量得到一組輸入信號(hào):來(lái)水量數(shù)據(jù)集(X,Y),即:
式中 xi∈Rn為輸入向量;yi∈Rn為與xi相對(duì)應(yīng)的輸出向量;N為數(shù)據(jù)點(diǎn)總數(shù)。
通過(guò)輸入向量與輸出向量的點(diǎn)集進(jìn)行函數(shù)回歸[1],如式(2):
式中 y為輸出向量;x為輸入向量;w,b為函數(shù)常數(shù)項(xiàng)。
假設(shè)在ε精度,所有訓(xùn)練樣本可用線性擬合函數(shù)表示,如式(3):
式中 ε 為精度;其他字母含義同上。
優(yōu)化目標(biāo)是最小化‖w‖2/2。由于允許誤差,引入松弛變量ξ≥0和≥0,如式(4):
W(α,α*)最大時(shí),由此得到支持向量機(jī)的擬合函數(shù)[2]f(x),如式(6):
式中 W(α,α*)為目標(biāo)函數(shù);C為大于零的常數(shù);αi,為L(zhǎng)agrange乘子,αi,將只有小部分不為0,對(duì)應(yīng)的樣本即為支持向量;其他字母含義同上。
考慮到非線性問(wèn)題可通過(guò)變換將問(wèn)題映射到某個(gè)高維的特征空間進(jìn)行求解。用核函數(shù)可代替線性問(wèn)題的內(nèi)積運(yùn)算,即K(xi,xj)=φ(xi)φ(xj)。由此,式(5)變換如式(7):
式中 字母含義同上。
那么式(6)擬合函數(shù)可變換如式(8):
式中 K(x,xi)為核函數(shù);其他字母含義同上。
本文所用為徑向基型,如式(9):
式中 σ 為核函數(shù)的寬度;其他字母含義同上。
以上為來(lái)水量預(yù)測(cè)的LS-SVM模型。
粒子群優(yōu)化算法PSO,是在人類對(duì)鳥(niǎo)類捕食時(shí)行為研究的基礎(chǔ)上得到的一種進(jìn)化計(jì)算方法。由于粒子群算法容易實(shí)現(xiàn)且不需要調(diào)整過(guò)多參數(shù)因而被廣泛應(yīng)用于多種領(lǐng)域。
采用某河流45年徑流資料對(duì)模型進(jìn)行實(shí)例驗(yàn)證,根據(jù)水庫(kù)前期徑流資料預(yù)測(cè)未來(lái)年份的來(lái)水量。
模型數(shù)據(jù)從資料的樣本集中選取45個(gè)數(shù)據(jù),其中25個(gè)數(shù)據(jù)作為訓(xùn)練樣本,10個(gè)數(shù)據(jù)作為校驗(yàn)樣本數(shù)據(jù),剩余10個(gè)數(shù)據(jù)作為測(cè)試樣本數(shù)據(jù)。設(shè)粒子群規(guī)模為45,SVM參數(shù)C的取值范圍 [0.1,104],σ 的取值范圍[10-3,10],設(shè)最大迭代次數(shù)Gmax為500,加速因子c1為0.01,c2為0.01。目標(biāo)函數(shù)為訓(xùn)練樣本集和校驗(yàn)樣本集的均方差之和為最小,經(jīng)過(guò)PSO優(yōu)化選擇得到使得目標(biāo)函數(shù)最小的最優(yōu)解C為2816,σ 為1.27。適應(yīng)度值的迭代優(yōu)化過(guò)程如圖1。
圖1 適應(yīng)度函數(shù)進(jìn)化過(guò)程
由圖1可見(jiàn),在100代左右快速收斂,275代左右達(dá)到最優(yōu)值。在最優(yōu)參數(shù)的基礎(chǔ)上,模型對(duì)10個(gè)測(cè)試樣本數(shù)據(jù)進(jìn)行測(cè)試,所得預(yù)測(cè)模型如圖2。
圖2 PSO-SVM預(yù)測(cè)模型
將模型所得預(yù)測(cè)值與實(shí)際值進(jìn)行比較,所得誤差結(jié)果如表1。
表1 PSO-SVM預(yù)測(cè)結(jié)果
實(shí)際值與預(yù)測(cè)值的相對(duì)誤差絕對(duì)值最大值7.59,最小值0.05,均方差4.25。
本文用相同數(shù)據(jù)建立BP神經(jīng)網(wǎng)絡(luò)模型與PSOSVM模型數(shù)據(jù)進(jìn)行比較,BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型[3]如圖3,預(yù)測(cè)值與實(shí)際值的比較如表2。
表2 BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果
續(xù)表2
圖3 BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型
BP神經(jīng)網(wǎng)絡(luò)模型所得預(yù)測(cè)值與實(shí)際值相對(duì)誤差的絕對(duì)值最大17.01%,最小1.40%,均方差8.36。
從兩種模型的預(yù)測(cè)曲線擬合程度來(lái)看,PSOSVM模型擬合程度明顯好于BP神經(jīng)網(wǎng)絡(luò)模型;從表中的數(shù)據(jù)分析結(jié)果來(lái)看,PSO-SVM模型的預(yù)測(cè)值與實(shí)際值的誤差的均方差小于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型值;PSO-SVM模型對(duì)來(lái)水量的預(yù)測(cè)精度更高。
建立了來(lái)水量PSO-SVM模型,并利用樣本數(shù)據(jù)進(jìn)行了訓(xùn)練與預(yù)測(cè),并利用BP神經(jīng)網(wǎng)絡(luò)模型對(duì)同一組數(shù)據(jù)進(jìn)行了預(yù)測(cè),模型數(shù)據(jù)結(jié)果分析表明:PSOSVM模型預(yù)測(cè)值與實(shí)際值的均方差小于BP神經(jīng)網(wǎng)絡(luò),PSO-SVM對(duì)預(yù)測(cè)曲線的擬合程度高于BP神經(jīng)網(wǎng)絡(luò)。PSO-SVM模型能夠?yàn)閬?lái)水量的預(yù)測(cè)提供更為精準(zhǔn)的參考依據(jù)。