武群麗,彭晨陽
(華北電力大學(xué) 經(jīng)濟與管理學(xué)院,河北 保定 071003)
準確可靠的月徑流預(yù)測對水資源系統(tǒng)有效運行管理具有重要意義。由于受到氣候變化和人類活動等眾多因素的影響,河川徑流表現(xiàn)出非線性的復(fù)雜特性,因此對其未來趨勢的預(yù)測成為了水資源研究領(lǐng)域的難點問題[1]。近年來,計算機技術(shù)的飛速發(fā)展極大地豐富了徑流預(yù)測的研究方法,如人工神經(jīng)網(wǎng)絡(luò)模型[2,3],支持向量機[4,5]等非線性方法。神經(jīng)網(wǎng)絡(luò)模型存在易陷入局部最優(yōu)、過學(xué)習(xí)、泛化能力差等缺點[6]。水文時間序列通常是非線性的小樣本數(shù)據(jù),支持向量機方法在小樣本數(shù)據(jù)情況下預(yù)測效果仍優(yōu)于傳統(tǒng)模型和神經(jīng)網(wǎng)絡(luò)模型[7]。但由于SVM算法存在超平面參數(shù)選擇問題,致使其求解規(guī)模過大。為此,Suykens[8]等人提出了最小二乘支持向量機算法。李佳[9]、李彥彬[10]、崔慶[11]、周秀平[12]等基于最小二乘支持向量機的建立徑流量預(yù)測模型,預(yù)測實例表明LSSVM在處理小樣本數(shù)據(jù)預(yù)測問題上有效地避免了神經(jīng)網(wǎng)絡(luò)方法的易陷入局部最優(yōu)和過學(xué)習(xí)現(xiàn)象等問題。
隨著人工智能技術(shù)的蓬勃發(fā)展, LSSVM模型獲得廣泛地關(guān)注。而正則化參數(shù)γ和核函數(shù)參數(shù)σ2對LSSVM模型的學(xué)習(xí)和適應(yīng)能力有直接影響,所以一些研究在進行徑流預(yù)測分析時利用智能算法對LSSVM模型進行參數(shù)優(yōu)化。李文莉等[13]和代興蘭[14]分別使用粒子群算法和遺傳算法對LSSVM模型的學(xué)習(xí)參數(shù)進行尋優(yōu)。然而,這些算法比較容易陷入局部最優(yōu),搜索到局部極小值。為了彌補現(xiàn)有算法的不足,Yang[15]提出了一種基于種群的隨機尋優(yōu)算法—蝙蝠算法(BA)。蝙蝠算法完美結(jié)合了粒子群算法、遺傳算法的主要優(yōu)點,使得蝙蝠算法具有模型簡單、搜索能力強、收斂速度快等優(yōu)點,因此蝙蝠算法已廣泛應(yīng)用到研究中[16-17]。鑒于蝙蝠算法在準確性和有效性方面較其他算法有很大優(yōu)勢,本文使用BA對LSSVM模型的正則化參數(shù)和核函數(shù)參數(shù)進行選擇并獲得全局最優(yōu)解。
蝙蝠算法(BA)是基于蝙蝠的回聲定位理論形成的一種元啟發(fā)式優(yōu)化智能算法,為研究便利做出如下假設(shè):
(1) 蝙蝠運用回聲定位感應(yīng)距離,并能以某種方式感知獵物和障礙物的差異;
(2) 蝙蝠在Xi位置以速度Vi隨機飛行,以固有頻率fmin、可變波長λ和響度A0搜索食物,它們能夠自動的根據(jù)食物與自身的距離調(diào)節(jié)發(fā)射的脈沖波長(或頻率),并在靠近食物時調(diào)整脈沖的頻度γ∈[0,1];
(3) 假定響度的變化從最大值A(chǔ)0(正值)到最小值A(chǔ)min。
蝙蝠算法的基本步驟表示如下:
①初始化蝙蝠種群xi和vi(i=1,2,…,n);②初始化頻率fi,發(fā)射頻度ri和響度Ai;③While (t<最大迭代次數(shù));④通過調(diào)整頻率產(chǎn)生新解;⑤更新速度和位置;⑥If (rand >ri);⑦從最優(yōu)解集中選擇一個解;⑧從選擇的這個最優(yōu)解附近產(chǎn)生一個局部解;⑨End if;⑩通過隨機飛行產(chǎn)生一個新解;If [rand 最小二乘支持向量機(LSSVM)是標準支持向量機(SVM)的一種改進算法,采用與SVM不同損失函數(shù),用等式約束代替不等式約束,同時最小化誤差的平方項。它將解二次規(guī)劃問題轉(zhuǎn)化為求解線性方程組的問題,有效提高了標準支持向量機的訓(xùn)練速度和精度。設(shè)樣本訓(xùn)練集S={(xi,yi)|i=1,2,3,…,t},其中xi∈Rn,yi∈R。最小二乘支持向量機的基本思想是使用一個非線性映射函數(shù)將數(shù)據(jù)映射到一個高維特征空間,然后在高維空間進行線性回歸,最后映射回原空間完成輸入空間的線性回歸,其線性回歸函數(shù)可以表示為: f(x)=ωTφ(x)+b (1) 式中:φ(x)為核空間映射函數(shù);ω為權(quán)向量;b為常數(shù)。 根據(jù)結(jié)構(gòu)風(fēng)險最小化原則確定參數(shù)ω,b,則有: (2) 式中:‖ω‖2表示模型的復(fù)雜程度;γ是正規(guī)化參數(shù);Remp為經(jīng)驗風(fēng)險函數(shù);LSSVM是化目標函數(shù)為誤差ξi的二次項,故優(yōu)化問題轉(zhuǎn)化為: (3) s.t.yi=ωφ(xi)+ξi+b,i=1,2,3,…,t 式中:ξi為預(yù)測誤差,用拉格朗日法求解該問題,則有: (4) 式中:λi(i=1,2,3,…,t) 是拉格朗日乘子。 根據(jù)Karush-Kuhn-Tucker(KKT)優(yōu)化條件,可得: (5) 上述優(yōu)化問題可轉(zhuǎn)化為求解線性方程: 式中:λ=[λ1,λ2,…,λt]T;I=[1,1,…,1]T為t×1維列向量;y=[y1,y2,…,yt]T,Jij=φ(xi)Tφ(xj)=K(xi,xj),K為滿足Mercer條件的核函數(shù),最后得出預(yù)測模型的函數(shù)為: (7) 這里采用徑向基函數(shù)(RBF)作為核函數(shù)。 (8) 式中:σ2為核函數(shù)參數(shù)。 在選定核函數(shù)之后,LSSVM需要選取正則化參數(shù)γ和核參數(shù)σ2,在現(xiàn)存的文獻中,這兩個參數(shù)大多還是憑個人經(jīng)驗、實驗對比或者網(wǎng)格搜索法及交叉驗證等方法進行尋優(yōu),這樣做耗時,效率低下而且預(yù)測結(jié)果不佳。而在本文中采用蝙蝠算法(BA)優(yōu)化這兩個參數(shù),可進一步改善了模型的適應(yīng)性,有效提高預(yù)測精度。 基于BA算法的LSSVM的參數(shù)優(yōu)化步驟如下: (1)參數(shù)設(shè)置。蝙蝠參算法的主要參數(shù):蝙蝠種群大小n,最大迭代次數(shù)N,蝙蝠的響度A,脈沖頻率r,蝙蝠位置向量x,速度向量v。 (2)種群初始化。初始化蝙蝠種群的位置,每一個蝙蝠位置由LSSVM參數(shù)組合(γ,σ)構(gòu)成,公式如下: x=xmin+rand(1,d)×(xmax-xmin) (9) 式中:種群的維數(shù)d=2。 (3)更新參數(shù)。計算種群適應(yīng)度,找出當前最佳解,同時更新蝙蝠的飛行速度、脈沖頻率和位置,方法如下: fi=fmin+(fmax-fmin)β (10) vti=vt-1i+(xti-x*)fi (11) xti=xt-1i+vti (12) 式中:β∈[0,1]是均勻分布的隨機數(shù);fi∈[fmin,fmax]是蝙蝠 的搜索脈沖頻率;vti、vt-1i分別表示蝙蝠i在t和t-1時刻的速度;xti、xt-1i分別表示當前蝙蝠i在t和t-1時刻的位置;x*表示當前所有全局最優(yōu)解。 (4)更新蝙蝠個體。如果有rand>ri,則對當前種群中最優(yōu)蝙蝠x*進行隨機擾動,產(chǎn)生新的蝙蝠個體;如果rand At+1i=αAti (13) rt+1i=r0i[1-exp(-γt)] (14) 式中:0<α<1,γ>0均為常數(shù)。 (5)輸出全局最優(yōu)參數(shù)。對種群的所有蝙蝠的適應(yīng)度值進行排序,找出當前最優(yōu)解,重復(fù)步驟(2)至(4),到最大迭代次數(shù)終止,輸出全局最優(yōu)參數(shù),建立月徑流預(yù)測模型。 綜合以上所述步驟,可將BA-LSSVM算法流程用圖1表示。本文選擇月降水量作為預(yù)測月徑流的輸入變量。首先,利用LSSVM模型訓(xùn)練原始數(shù)據(jù),以預(yù)測值與真實值的均方誤差作為蝙蝠算法的適應(yīng)度值。然后通過蝙蝠算法(BA)尋找LSSVM的群體最優(yōu)參數(shù)。最后,獲取最優(yōu)化參數(shù)的LSSVM模型用來預(yù)測月徑流。 圖1 BA-LSSVM模型流程圖Fig.1 Flowchart of BA-LSSVM 本文選取了位于西江流域內(nèi)的柳州水文站2000-2014年實測月徑流資料作為研究對象。西江流域是珠江水系的主干流,上游南盤江發(fā)源于云南省沾益縣內(nèi)的馬雄山。而珠江流域是我國南方的重要水系,年徑流量僅次于長江流域,居全國第2位。西江流域面積為35.21 萬km2,占珠江流域總面積的77.8%[18]。西江流域是濕熱多雨的熱帶、亞熱帶氣候,大部分地區(qū)的年平均溫度在14~22 ℃之間,多年平均濕度在71%~80%,西江流域多年平均降雨量1 200~2 200 mm[19]。西江流域是廣東省和廣西省的經(jīng)濟、文化和政治中心。對西江流域內(nèi)的柳州水文站的月徑流進行預(yù)測,可為西江流域內(nèi)水資源管理提供科技支撐,更好地實現(xiàn)水資源的可持續(xù)發(fā)展。本文以2000-2011年各月徑流量作為訓(xùn)練樣本,以2012-2014年各月徑流量為測試樣本。研究期內(nèi)各月徑流量如圖2所示。 圖2 2000-2014年各月徑流量Fig.2 Monthly runoff data from 2000 to 2014 本文選用確定性系數(shù)(Dy)、均方根相對誤差(RMSE)、平均絕對誤差百分比(MAPE)3個指標作為評價各種模型預(yù)測效果的依據(jù)。根據(jù)水文情報預(yù)報規(guī)范[20],確定性系數(shù)DY值越大,模型精度越高。各評價指標計算公式如下: (17) 在實際應(yīng)用中,LSSVM模型的性能依賴于其參數(shù)的選擇,要建立最優(yōu)化的預(yù)測模型,必須進行參數(shù)尋優(yōu)。BA 作為一種新的群智能優(yōu)化算法為LSSVM參數(shù)的優(yōu)化提供了新的思路。本文中的LSSVM 模型選用徑向基函數(shù)(RBF)作為核函數(shù),RBF函數(shù)的參數(shù)相對較少,且數(shù)值限制條件少,可以降低模型的復(fù)雜程度,提高訓(xùn)練速度,正則化參數(shù)γ和核函數(shù)參數(shù)σ2由BA自動搜索進行優(yōu)化。BA的主要參數(shù)如表1所示。 表1 BA的主要參數(shù)Tab.1 Main parameters of BA 另外,為驗證BA-LSSVM模型良好的預(yù)測性能,本文同時使用粒子群算法優(yōu)化LSSVM模型的參數(shù)(PSO-LSSVM),網(wǎng)格搜索與交叉驗證算法優(yōu)化的LSSVM模型,以及BP神經(jīng)網(wǎng)絡(luò)模型進行對比。BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速率取0.01,循環(huán)次數(shù)取300,采用“試錯法”確定隱含層節(jié)點數(shù)為11。PSO-LSSVM模型的最大迭代次數(shù)為200,初始粒子群數(shù)為30。LSSVM模型的正則化參數(shù)γ和核函數(shù)參數(shù)σ2如表2所示。 表2 LSSVM模型的參數(shù)選擇結(jié)果Tab.2 The related parameters of different LSSVM models 為保證模型的適用性和可靠性,本文分別采用BPNN,LSSVM,PSO-LSSVM和BA-LSSVM 4種方法對2000-2014年的月徑流數(shù)據(jù)進行訓(xùn)練和預(yù)測。其訓(xùn)練樣本集數(shù)為144,測試集樣本數(shù)為36。測試樣本的預(yù)測值與實測值如圖3所示。為了便于觀察和比較,表3給出了不同模型的月徑流預(yù)測結(jié)果。 圖3 預(yù)測值與實測值對比Fig. 3 Comparison of forecasting values and actual values 評價指標預(yù)測模型BALSSVMPSOLSSVMLSSVMBPNNDY0.98910.96680.93110.9278RMSE0.16640.31750.44820.5401MAPE/%15.1329.3141.1148.27 由圖3可知,不同預(yù)測方法得出的實測值與預(yù)測值的絕對誤差是不同的,BP神經(jīng)網(wǎng)絡(luò)模型的絕對誤差較其他模型是最大的,而BA-LSSVM模型在絕大部分月份的預(yù)測值均是可以接受的。與使用網(wǎng)格搜索和交叉驗證算法進行參數(shù)優(yōu)化的LSSVM模型相比,通過智能算法對LSSVM模型進行參數(shù)優(yōu)化得到的改進模型更適合預(yù)測月徑流量。另外,與PSO-LSSVM相比,基于BA改進的LSSVM預(yù)測模型能夠顯著提高LSSVM模型的預(yù)測性能,表現(xiàn)出更好的泛化能力。 由表3可非常直觀的評價不同模型的預(yù)測性能,從中可以得出:本文建立了兩個改進的LSSVM模型(BA-LSSVM,PSO-LSSVM),就 、RMSE、MAPE三個評價指標而言,BA-LSSVM模型達到的預(yù)測效果明顯優(yōu)于PSO-LSSVM混合預(yù)測模型,例如,BA-LSSVM模型的RMSE是0.166 4,而PSO-LSSVM模型的RMSE是0.317 5, BA-LSSVM模型的MAPE是15.13%,而PSO-LSSVM模型的MAPE是29.13%。這是因為BA吸收了現(xiàn)有智能算法的優(yōu)點,同時還結(jié)合了蝙蝠驚人的回聲定位能力,而粒子群算法實際是簡化的蝙蝠算法的特殊情形,所以蝙蝠算法的參數(shù)尋優(yōu)能力明顯優(yōu)于粒子群算法;BA-LSSVM和PSO-LSSVM模型的預(yù)測效果優(yōu)于使用網(wǎng)格搜索和交叉驗證進行參數(shù)優(yōu)化的LSSVM模型,原因是改進的LSSVM模型加入了參數(shù)自動搜索尋優(yōu)的過程,使得LSSVM模型具有更強的學(xué)習(xí)能力和泛化能力,也更易獲得全局最優(yōu)解; BA-LSSVM、PSO-LSSVM和LSSVM模型的預(yù)測精度都好于BPNN模型,這是因為BP神經(jīng)網(wǎng)絡(luò)具有較強的非線性映射能力,能實現(xiàn)對非線性函數(shù)的逼近,但容易陷入局部最優(yōu)。另外,BPNN不能確保收斂到全局最優(yōu)解,網(wǎng)絡(luò)結(jié)構(gòu)也不易確定,從而造成月徑流預(yù)測精度較低。總體而言,本文提出的基于蝙蝠算法優(yōu)化最小二乘支持向量機模型適用于非線性的徑流序列分析和預(yù)測,并能顯著提高了對徑流序列的預(yù)測能力和預(yù)測精度,對實際的水文時序具有良好的適用性。 為對月徑流量進行有效的預(yù)測,本文建立了一個組合智能模型BA-LSSVM。以月降雨量作為輸入量,通過蝙蝠算法對LSSVM模型的正則化參數(shù) 和核函數(shù)參數(shù) 進行優(yōu)化,最終得到具有良好學(xué)習(xí)和泛化能力的模型對2011-2014年的月徑流量進行預(yù)測。 與PSO-SSVM 模型,使用網(wǎng)格搜索和交叉驗證算法優(yōu)化LSSVM模型以及BP神經(jīng)網(wǎng)絡(luò)模型相比, BA-LSSVM模型的各項精度評價指標值均較為理想,這表明BA-LSSVM具有很強的預(yù)測能力和實用性,為月徑流預(yù)報研究提供了新的思路。 □ [1] 張 楠,夏自強,江 紅. 基于多因子量化指標的支持向量機徑流預(yù)測[J]. 水利學(xué)報, 2010,41(11):1 318-1 324. [2] Govindaraju RS. Artificial neural networks in hydrology. I: preliminary concepts[J]. Journal of Hydrologic Engineering, 2000,5(2):115-123. [3] Govindaraju RS. Artificial neural networks in nydrology. II: nydrologic applications[J]. Journal of Hydrologic Engineering, 2000,5(2):124-137. [4] 廖 杰,王文圣,李躍清,等. 支持向量機及其在徑流預(yù)測中的應(yīng)用[J]. 四川大學(xué)學(xué)報(工程科學(xué)版), 2006,38(6):24-28. [5] 張?zhí)m影,龐 博,徐宗學(xué),等. 基于支持向量機的石羊河流域徑流模擬適用性評價[J]. 干旱區(qū)資源與環(huán)境, 2013,27(7):113-118. [6] 衛(wèi)太祥,馬光文,黃煒斌. 基于懲罰加權(quán)支持向量機回歸的徑流預(yù)測模型[J]. 水力發(fā)電學(xué)報, 2012,31(6):35-38,43. [7] Yoon H,Jun S,Hyun Y, et al. A comparative study of artificial neural networks and support vector machines for predicting groundwater levels in a coastal aquifer[J]. Journal of Hydrology, 2011,396(1):128-138. [8] Suykens J, Vandewalle J. Least squares support vector machine classifiers[J]. Neural Processing Letters, 1999,9(3):293-300. [9] 李 佳,馬光文,楊忠偉,等. 基于粒子群最小二乘支持向量機的徑流預(yù)測[J]. 人民長江, 2012,43(S2):60-62. [10] 李 彥彬,尤 鳳,黃 強,等. 多元變量徑流預(yù)測的最小二乘支持向量機模型[J]. 水力發(fā)電學(xué)報, 2010,29(3):28-33. [11] 崔 慶,馬孝義,陳海濤. 最小二乘支持向量機模型在徑流預(yù)報中的應(yīng)用[J]. 中國農(nóng)村水利水電, 2012,(12):63-65. [12] 周秀平,李天翔,王文圣. 年徑流預(yù)測的最小二乘支持向量機-馬爾可夫鏈組合模型[J]. 水力發(fā)電學(xué)報, 2013,32(4):16-19. [13] 李文莉,李郁俠. 基于粒子群最小二乘支持向量機的水文預(yù)測[J]. 計算機應(yīng)用, 2012,32(4):1 188-1 190. [14] 代興蘭. 遺傳算法與最小二乘支持向量機在年徑流預(yù)測中的應(yīng)用[J]. 水資源與水工程學(xué)報, 2014,25(6):231-235. [15] Yang X. Nature inspired cooperative strategies for optimization (NICSO 2010)[M]. Springer, 2010:65-74. [16] Rao BV,Kumar GN. Optimal power flow by bat search algorithm for generation reallocation with unified power flow controller[J]. International Journal of Electrical Power & Energy Systems, 2015,68:81-88. [17] Hafezi R, Shahrabi J, Hadavandi E. A bat-neural network multi-agent system(BNNMAS) for stock price prediction: case study of DAX stock price[J]. Applied Soft Computing, 2015,29:196-210. [18] 袁 媛,雷曉輝,蔣云鐘,等. 基于SWAT模型的西江流域徑流模擬研究[J]. 中國農(nóng)村水利水電, 2015,(3):14-17. [19] 童 娟. 珠江流域概況及水文特性分析[J]. 水利科技與經(jīng)濟, 2007,13(1):31-33. [20] GB/T22482-2008. 水文情報預(yù)報規(guī)范[S].1.2 最小二乘支持向量機
1.3 蝙蝠算法-最小二乘支持向量機模型
1.4 數(shù)據(jù)來源
2 結(jié)果與分析
2.1 模型精度評價
2.2 模型參數(shù)選取
2.3 不同模型預(yù)測結(jié)果分析
3 討 論
4 結(jié) 語