彭高輝,張 祥,郭春梅
(1.華北水利水電大學(xué) 數(shù)學(xué)與信息科學(xué)學(xué)院,河南 鄭州 450045;2.開封市城區(qū)水利局,河南 開封 475000)
常見的水文預(yù)測模型分為統(tǒng)計模型和人工智能模型兩大類[1-2]. 在統(tǒng)計模型方面,張永領(lǐng)等基于SVD 迭代的短期氣候預(yù)測模型對華北16 個站和長江中下游地區(qū)30 個站近10 年夏季降水做預(yù)測[3];常青等融合時間序列模型與支持向量回歸用于赤峰地區(qū)夏季降水量預(yù)測[4];廖捷等通過疊加馬爾科夫鏈模型對小金站1961—2010 年的年降水量預(yù)測研究[5].在人工智能模型方面,劉國東等通過在水文預(yù)測中應(yīng)用BP 模型,對網(wǎng)絡(luò)結(jié)構(gòu)的收斂準(zhǔn)則的選擇、訓(xùn)練速度較慢和預(yù)測精度不夠等問題進行了研究[6];方永遠等結(jié)合實例論證分析了在一定條件下有效加速BP 神經(jīng)網(wǎng)絡(luò)的收斂[7];閉良祖等將馬爾科夫鏈和RBF 神經(jīng)網(wǎng)絡(luò)相結(jié)合,建立R -M 降水量預(yù)測模型[8].研究上述成果發(fā)現(xiàn),統(tǒng)計模型對短時變化的降水序列難以預(yù)測,人工智能模型存在易過度擬合等不足.針對上述問題,借鑒數(shù)據(jù)挖掘中組合學(xué)習(xí)器,采用基于Adaboost 算法的BP 神經(jīng)網(wǎng)絡(luò)組合模型用于年降水量的預(yù)測.
Freund 等在1997 年提出Adaboost 算法[9],是Boosting 算法之一,是一種迭代算法. 其核心思想是利用弱學(xué)習(xí)算法通過集成的方式生成精度高的學(xué)習(xí)算法. Adaboost 算法對給定的弱算法采用重采樣方法為每個分類器提供不同的訓(xùn)練數(shù)據(jù)進行迭代運算,根據(jù)每次訓(xùn)練中每個樣本的分類是否正確、上次總體分類的準(zhǔn)確率,確定每個樣本的權(quán)值.權(quán)重更新過的樣本集被用于下一個分類器訓(xùn)練,整個訓(xùn)練過程循環(huán)迭代,最后將每次訓(xùn)練得到的弱分類器集成為決策分類器.
BP-Adaboost 算法[10-11]是對BP 神經(jīng)網(wǎng)絡(luò)和Adaboost 算法的集成改進.通過合并多個BP 弱預(yù)測器以產(chǎn)生強預(yù)測器,彌補了易陷入局部極值、收斂速度慢的缺點,從而使組合后得到的強預(yù)測器具有較強的泛化能力.算法流程如圖1 所示.
圖1 BP-Adaboost 算法預(yù)測流程
具體算法步驟如下:
1)樣本數(shù)據(jù)采集和網(wǎng)絡(luò)的初始化. 從樣本空間中隨機選擇m 組訓(xùn)練數(shù)據(jù),初始化數(shù)據(jù)的分布權(quán)值Dt=1 m-1,根據(jù)樣本輸入和輸出維數(shù)確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并初始化BP 神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值.
2)弱預(yù)測器的訓(xùn)練.訓(xùn)練第t 個弱預(yù)測器時,用訓(xùn)練數(shù)據(jù)訓(xùn)練BP 神經(jīng)網(wǎng)絡(luò)并預(yù)測訓(xùn)練數(shù)據(jù)輸出,得到預(yù)測序列g(shù)(t)的預(yù)測誤差
3)計算預(yù)測序列的權(quán)值.根據(jù)預(yù)測序列g(shù)(t)的預(yù)測誤差et計算預(yù)測序列的權(quán)值
4)權(quán)值調(diào)整.根據(jù)預(yù)測序列權(quán)值at調(diào)整下一輪訓(xùn)練樣本的權(quán)值
式中Bt為歸一化因子,目的是在權(quán)值比例不變的情況下使分布權(quán)值和為1.
5)組合強預(yù)測函數(shù).訓(xùn)練T 輪后得到T 組弱預(yù)測函數(shù)f(gt,at),由T 組弱預(yù)測函數(shù)f(gt,at)組合得到強預(yù)測函數(shù)
數(shù)據(jù)來源于中國氣象科學(xué)數(shù)據(jù)共享服務(wù)網(wǎng),根據(jù)河南省10 個地市(鄭州、安陽、開封、新鄉(xiāng)、信陽(1951—2012 年)、南陽(1952—2012 年)、三門峽(1957—2012 年)、商丘(1954—2012 年)、許昌(1953—2012 年)、駐馬店(1959—2012 年))的月降水量數(shù)據(jù),進行年降水量預(yù)測研究.
為驗證本模型的可靠性,將10 個地市的數(shù)據(jù)分為訓(xùn)練集和測試集.采用BP-Adaboost 模型和BP 神經(jīng)網(wǎng)絡(luò)模型分別進行2,3,4 a 的降水量預(yù)測,通過和實際數(shù)據(jù)比較,檢驗2 種模型的效果.
經(jīng)多次試驗,選定使用6 個BP 神經(jīng)網(wǎng)絡(luò)模型的BP-Adaboost 模型,采用3 層網(wǎng)絡(luò)結(jié)構(gòu),將誤差超過0.05 的測試樣本作為加強學(xué)習(xí)的樣本,訓(xùn)練次數(shù)設(shè)置為100 次.經(jīng)過反復(fù)訓(xùn)練,得到6 個BP 神經(jīng)網(wǎng)絡(luò)集成的強預(yù)測器.
為比較預(yù)測能力的提升度,對2 種模型的誤差作如下處理:
式中:H 為強預(yù)測器的輸出值;hi為第i 個弱預(yù)測器的輸出值;L 為測試樣本中相應(yīng)的數(shù)據(jù);error1 和error2 分別為強、弱預(yù)測器的誤差百分率. 結(jié)果見表1.
由表1 可以得出,使用BP-Adaboost 強預(yù)測器預(yù)測的10 個地市的數(shù)據(jù)預(yù)測誤差率小于BP 神經(jīng)網(wǎng)絡(luò)弱預(yù)測器的誤差率,可見集成Adaboost 和BP 算法的BP-Adaboost 組合模型的預(yù)測能力比單個BP神經(jīng)網(wǎng)絡(luò)的強,3 種預(yù)測長度下的平均預(yù)測誤差率分別為4.824 3%,2.526 8%,4.068 5%.
為定量比較改進前后2 模型的預(yù)測能力,引入預(yù)測能力提升率,用w 表示,
表1 強、弱預(yù)測器對2 ~4 a 長度年降水量預(yù)測誤差率
根據(jù)表1 中的數(shù)據(jù),由式(7)可得出BP-Ada-boost 模型的預(yù)測能力提升率.
圖2 2 ~4 a 預(yù)測長度下預(yù)測能力提升率
結(jié)合圖2 可以看出,2 a 預(yù)測長度下的預(yù)測提升率波動最大,3 a 和4 a 預(yù)測長度下預(yù)測能力較為穩(wěn)定.總體而言,2 ~4 a 的預(yù)測長度下的預(yù)測能力分別平均提升56.651 1%,41.135 4%,42.578 3%.
在上述研究基礎(chǔ)上,分別對2013 年和2014 年的年降水量進行預(yù)測,并取其均值作為對2013 和2014 年的年降水量預(yù)測值,結(jié)果見表2.
表2 2013 年和2014 年的年降水量mm
利用Adaboost 算法和BP 神經(jīng)網(wǎng)絡(luò)相結(jié)合的BP-Adaboost 強預(yù)測器模型對河南省10 個地市的年降水量進行預(yù)測. 試驗分析表明,BP-Adaboost 模型的預(yù)測能力較單一BP 神經(jīng)網(wǎng)絡(luò)模型有較大幅度的提升;同時可以看出,通過將Adaboost 算法和其他算法進行耦合得到的新算法可以顯著提高算法的學(xué)習(xí)能力.不足之處在于預(yù)測能力的提升率存在波動,有待進一步深入研究.
[1]Breiman L.Statistical modeling:the two cultures[J].Statistical Science,2010,16(3):199 -215.
[2]Tiwari M K,Chatterjee C. Uncertainty assessment and ensemble flood forecasting using Boostrap based Artificial Neurial Networks(BANNs)[J]. Journal of Hydrology,2010,382(1 -4):20 -33.
[3]張永領(lǐng),吳勝安,丁裕國,等.SVD 迭代模型在夏季降水預(yù)測中的應(yīng)用[J].氣象學(xué)報,2006,64(1):121 -128.
[4]常青,趙曉莉.時間序列模型在降水量預(yù)測中的應(yīng)用研究[J].計算機仿真,2011,7(28):204 -206.
[5]廖捷,陳功,胡豪然. 疊加馬爾科夫鏈在年降水量預(yù)測中的應(yīng)用[J]. 安徽農(nóng)業(yè)科學(xué),2012,40(9):5532-5533.
[6]劉國東,丁晶. BP 網(wǎng)絡(luò)用于水文預(yù)測的幾個問題探討[J].水利學(xué)報,1999,30(1):66 -71.
[7]方紅遠,陳建軍.水文預(yù)測的BP 網(wǎng)絡(luò)模型及其擬合度分析[J].揚州大學(xué)學(xué)報,2001,4(4):57 -61.
[8]閉祖良,張展羽,朱新國,等.基于RBF 神經(jīng)網(wǎng)絡(luò)馬爾可夫模型的降水量預(yù)測[J].節(jié)水灌溉,2010(11):1 -3.
[9]張曉龍,任芳.支持向量機與Adaboost 的文本算法研究[J].計算機應(yīng)用研究,2009,26(1):77 -78.
[10]董元元,陳基漓,唐小俠. 基于BP-Adaboost 的文本分類研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2012(3):42 -43.
[11]嚴(yán)超,王元慶,李久雪,等.Adaboost 分類問題的理論推導(dǎo)[J].東南大學(xué)學(xué)報,2011,41(4):700 -705.