林泳恩,杜 懿,孟 越,解河海,王大剛
(1.中山大學地理科學與規(guī)劃學院,廣州510000;2.珠江水利委員會珠江水利科學研究院,廣州510000)
準確可靠的短期徑流預報對制定防洪減災應急計劃,保障人民生命財產(chǎn)安全具有重要的戰(zhàn)略意義和應用價值。隨著我國當前水利信息化的大力推進,水文數(shù)據(jù)的數(shù)據(jù)量呈現(xiàn)出指數(shù)級的增長趨勢[1,2]。在如今這個大數(shù)據(jù)時代,基于數(shù)據(jù)挖掘技術,從歷史經(jīng)驗與海量氣象水文數(shù)據(jù)中提取數(shù)據(jù)的深度價值,是水文預報發(fā)展的一個重要方向[3]。
機器學習是一門研究計算機如何效仿人的學習行為來取得新的知識和技能的學科。機器學習算法可以從數(shù)據(jù)中自動分析獲得規(guī)律,并利用規(guī)律對未知數(shù)據(jù)進行預測,因此被廣泛應用于數(shù)據(jù)挖掘、計算機視覺、生物特征識別、網(wǎng)絡安全、市場規(guī)律分析等領域[4-7]。基于大數(shù)據(jù)的機器學習能夠在不考慮流域匯流過程、下墊面變化、人類活動影響等復雜因素的前提下,構建徑流預測黑箱模型,實現(xiàn)對未來河道水量的高效預測。
機器學習中的不少智能算法已廣泛應用于水文領域中,比如入庫流量預測[8]、地下水預測[9]、水質預測[10]等。關于短期徑流預報的文章也有不少[11-15],但在這些研究中,往往只是建立單一的預報模型,準確率與穩(wěn)定性均有待提升。集成學習基于博采眾長的思想,通過構建并結合多個機器學習器來完成學習任務,能夠有效防止過擬合和欠擬合問題的發(fā)生,從而改善預測效果。目前集成學習在人臉識別[16]、電力調度[17]、疾病診斷[18]等領域已有不少應用,在水文水資源領域也有一些研究。如王婉琳將集成學習應用于再生水資源配置,得到的配置結果明顯優(yōu)于傳統(tǒng)智能優(yōu)化方法的配置結果[19]。許斌等人將隨機森林模型和梯度提升樹模型應用于中長期徑流預報中,結果顯示這兩個集成學習模型能有效提高預報的準確度、可靠度和穩(wěn)定度[20]。馬新宇等人的研究結果表明,bagging集成學習模型對于水華的預測能力高于單個BP網(wǎng)絡模型[21]。
目前關于集成學習在短期徑流預測中的應用研究還比較缺乏,因此本次研究將利用前饋神經(jīng)網(wǎng)絡(FFNN)、長短期記憶神經(jīng)網(wǎng)絡(LSTM)、支持向量回歸(SVR)、自回歸積分滑動平均模型(ARIMA)以及分類回歸樹(CART)作為基學習器,分別建立bagging 集成模型、stacking 集成模型、GBDT 集成模型以及AdaBoost 集成模型,實現(xiàn)對安墩水流域小時尺度的徑流預測,并通過相關系數(shù)(CC)、平均絕對誤差(MAE)、平均相對誤差(MRE)、均方根誤差(RMSE)、納什效率系數(shù)(NSE)、達標率(QR)等指標進行比較分析,探索短期徑流預測的研究發(fā)展新途徑。
安墩水,又稱安墩河,為西枝江的一級支流,發(fā)源于廣東省惠東縣安迅鎮(zhèn)水美村,于惠東縣多祝鎮(zhèn)水口村匯入西枝江。安墩河流域屬于亞熱帶季風氣候,高溫多雨、氣候濕潤,因為受到蓮花山脈的影響,其成為惠州市的暴雨中心之一。安墩水流域總集雨面積為404 km2,其中,九洲水文站以上集雨面積達385 km2,流域長51 km,平均比降4.33‰,多年平均徑流量54 m3/s,多年平均降水深1 761.5 mm,其中約80%的雨量集中分布在4-9月間。
安墩水流域內(nèi)共設有梅子坪、洋潭、倉下、松坑、安墩、九洲等6 個雨量觀測站,九洲站同時也為該流域內(nèi)唯一的一個水文觀測站。各測站的相關信息如表1 所列,流域內(nèi)各測站的空間分布情況如圖1所示。
圖1 安墩水流域圖Fig.1 The map of Andun River basin
表1 安墩水流域內(nèi)各雨量測站信息Tab.1 Information of rainfall measurement stations in the Andun River Basin
在本研究中,我們使用流域內(nèi)六個雨量站及一個流量站在1980-2016年的觀測數(shù)據(jù)來進行研究。我們計算了當前時刻流量值與過去不同時刻流量值和平均降雨量值之間的相關系數(shù),結果如圖2 所示。由圖2 可看出,隨著兩個流量值的時間差增大,他們之間的相關性不斷減少,當滯后時間達到10 h 時,相關系數(shù)的衰減速度明顯變緩。而當前流量值與前期降雨量的相關性則是隨著時間先增大后減小,其中峰值出現(xiàn)在第6 h?;谝陨戏治觯覀冏罱K選擇了流域過去10 h 中各小時的降雨量以及流量值作為模型的輸入。我們將前80%的數(shù)據(jù)劃分為訓練集以用來訓練模型,將剩下的20%的數(shù)據(jù)劃分為測試集以用來評價模型的預測效果。
圖2 當前時刻流量值與過去不同時刻流量值和平均降雨量值之間的相關性Fig.2 The correlation between the current streamflow and streamflow and average rainfall of the previous times
由于進行的是時間序列的預測以及流量值和降雨量值的量綱不同,為了加快模型訓練時的收斂速度以及提高模型的預測效果,本研究在訓練模型前先對原始數(shù)據(jù)集進行了標準化處理,其公式如下:
集成學習(Ensemble Learning)的主要思想是通過一定的方式產(chǎn)生多個子預測模型,再根據(jù)特定的策略將所有的子模型進行結合形成最終的集成模型。本次研究將利用前饋神經(jīng)網(wǎng)絡(FFNN)、長短期記憶神經(jīng)網(wǎng)絡(LSTM)、支持向量回歸(SVR)、自回歸積分滑動平均模型(ARIMA)以及分類回歸樹(CART)作為集成模型的基學習器,并進一步構造Bagging 集成模型、Stacking集成模型、GBDT集成模型以及AdaBoost集成模型。
前饋神經(jīng)網(wǎng)絡(FFNN)是人工神經(jīng)網(wǎng)絡的一種,其采用一種單向多層結構,整體構架由輸入層、隱藏層(一層或多層)和輸出層多層網(wǎng)絡組成,各層均包含一定數(shù)量的神經(jīng)元。長短期記憶網(wǎng)絡(LSTM)是循環(huán)神經(jīng)網(wǎng)絡的一種,通過考慮短期和長期狀態(tài),LSTM 網(wǎng)絡可以識別有價值的輸入,并將它們保存在長期狀態(tài)當中,而當必要時候則可以在長期狀態(tài)中將這些信息提取出來。支持向量回歸(SVR)是為了解決回歸問題而根據(jù)支持向量機算法演化而來的算法,它將初始數(shù)據(jù)非線性地映射在高維特征空間以及解決特征空間中的線性回歸問題。分類回歸樹(CART)是一種樹構建算法,這種算法主要通過使用二元切分來處理連續(xù)型變量,即特征值大于某個給定的值就走左子樹,或者就走右子樹,這樣一步步下去獲得最終結果。自回歸積分滑動平均模型(ARIMA)是指將非平穩(wěn)時間序列轉化為平穩(wěn)的時間序列后,將因變量對它的歷史值以及誤差項的當前值和歷史值進行回歸建模。目前已有一些研究利用了這幾種算法來建立徑流預報模型,并取得一定的預測效果[22-26]。
Bagging算法的核心思想是從訓練集進行Bootstrap抽樣,構造子預測模型,再將所有預測結果進行投票平均。Stacking 算法是一種有層次的集成算法,它的主要思想是先通過不同的方法訓練多個不同的弱學習器,然后再訓練一個將之前的弱學習器的輸出作為輸入的高層學習器,它的輸出就是最終的預測結果。GBDT 算法通過多輪迭代,每輪迭代產(chǎn)生一個弱學習器,每個學習器在上一輪學習器的殘差基礎上進行訓練,以達到不斷減少預測誤差的目的。AdaBoost 算法在訓練每個弱學習器時,都會根據(jù)上一個弱學習器來改變訓練樣本的權重,最后再通過一定方式將所有弱學習器組合起來。
采用相關系數(shù)(CC)、平均絕對誤差(MAE)、平均相對誤差(MRE)、均方根誤差(RMSE)、納什效率系數(shù)(NSE)、達標率(QR)作為評定模擬精度的評價指標。具體為:
式中:xo,i和xm,i分別為實測值和模型預測值和分別為所有實測值的均值和所有模型預測值的均值;N為總樣本量;qn為及格預報的數(shù)量,即相對誤差小于20%的預報。
圖3展示了bagging 模型、stacking 模型、GBDT 模型以及Ad?aBoost 模型在預測未來1 h 徑流時的性能,其中左邊一列4 張圖為在訓練期的結果,右邊一列4 張圖為在測試期的結果。不難發(fā)現(xiàn),在訓練期GBDT 模型要明顯優(yōu)于其他3 種集成模型,其預測值與實測值之間更加的接近,且決定系數(shù)R2最高,為0.997 9;在訓練期表現(xiàn)第二好的模型為stacking 集成模型,其決定系數(shù)R2為0.990 9。而在測試期,GBDT 模型的預測效果是最差的,決定系數(shù)R2僅為0.936 6,且擬合直線與1∶1 線偏離較多;而另外3種模型的表現(xiàn)差異不大,其中表現(xiàn)最好的模型為bagging模型和AdaBoost模型,它們的決定系數(shù)R2均為0.9860。綜合來看,在預測未來1 h 的徑流時,AdaBoost 模型的表現(xiàn)是最好的。當預報未來兩小時徑流時,4 種集成模型表現(xiàn)出相似的預測性能(圖略),訓練期它們的決定系數(shù)R2按順序分別為0.963 7、0.971 4、0.995 9 和0.961 6,測試期精度均有所下降,他們的決定系數(shù)R2分別為0.946、0.941、0.884 和0.947。當預測未來4 h 徑流時,這4 種集成模型仍然保持了較好的預測能力,訓練期它們的決定系數(shù)R2分別為0.894 6、0.909 0、0.843 7 和0.911 5,而測試期的決定系數(shù)R2分別為0.845、0.798、0.809和0.826。
圖3 預見期為1 h時bagging模型、stacking模型、GBDT模型以及AdaBoost模型的預測結果與實測值之間的散點分布圖Fig.3 The scatter diagram between the predicted results of the Bag?ging model,the Stacking model,the GBDT model and the Adaboost model and the measured values when the forecast lead time is 1 hour
分別統(tǒng)計4 種集成模型在測試期中預測結果的6 項精度指標,結果如表2 所示。當預見期為1 h 時,各模型的預測效果排名為:bagging 集成模型>AdaBoost 集成模型>stacking 集成模型>GBDT 集成模型,其中bagging 集成模型的RMSE、MAE、MRE、NSE、QR、CC分別為11.235、4.015、0.086、0.986、0.933 和0.994。當預見期為2 h 時,bagging 集成模型和AdaBoost 集成模型均表現(xiàn)不錯,但bagging 集成模型的效果略優(yōu)于AdaBoost 集成模型,各模型的預測效果排名為:bagging 集成模型>AdaBoost 集成模型>stacking 集成模型>GBDT 集成模型,其中bagging 集成模型的RMSE、MAE、MRE、NSE、QR、CC分別為22.17、8.096、0.141、0.946、0.866 和0.974。當預見期為3 h 時,各模型的預測效果排名為:bagging 集成模型>stacking 集成模型>AdaBoost 集成模型>GBDT 集成模型,其中bagging 集成模型的RMSE、MAE、MRE、NSE、QR、CC分別為31.775、11.795、0.188、0.889、0.809和0.946。當預見期為4 h時,各模型的預測效果排名為:bagging集成模型>AdaBoost 集成模型>GBDT 集成模型>stacking 集成模型,其中bagging 集成模型的RMSE、MAE、MRE、NSE、QR、CC分別為37.865、14.01、0.211、0.845、0.764和0.923。
表2 4種集成模型在測試期中的預測效果Tab.2 The prediction performance of the four ensemble learning models in the testing set
隨著預見期的增長,4種模型的預測表現(xiàn)均有所下降,這是因為預見期的增長會帶來更多的不確定性,從而增加預測的難度。其中bagging集成模型穩(wěn)定性是最好的,預測性能并沒有隨著預見期的增長而下降太多,各項指標均能保持在較好的水平上;整體來看,穩(wěn)定性從大到小排序為:bagging 集成模型>Ada?Boost集成模型>GBDT集成模型>stacking集成模型。
Yilmaz 等人[27]的研究指出,最高的2%的流量值體現(xiàn)了河流的洪峰流量,而最低的30%的那些流量值則能夠反映河流的基流情況。基于此,本研究將安墩水的流量按照其大小分成了3 個等級:0~28 m3/s 代表基流,28~269 m3/s 代表中等流,大于269 m3/s代表洪水流量。分別計算1 h預見期時4種集成模型對于這3 個級別徑流的預測效果,結果如表3 所示。對于基流來說,bagging集成模型和stacking集成模型均有不錯的預測性能,而GBDT 集成模型雖然在一些指標上較優(yōu),但其RMSE和NSE卻比較差,說明其對基流的預測不太穩(wěn)定,即某些時候預測效果好,而某些時刻效果一般。對于中等流,4種集成模型的效果差異不大,整體來看,各模型的預測效果排名為:bagging集成模型>AdaBoost集成模型>GBDT集成模型>stacking集成模型。對于洪水,AdaBoost 集成模型的表現(xiàn)明顯優(yōu)于其他3 種模型,而GBDT 集成模型的表現(xiàn)則明顯差于其他模型??偟膩碚f,這4種集成模型對中等流和洪水均有不錯的預測效果,而這一點對于防洪減災是十分有價值的。
表3 預見期為1 h時4種集成模型對3個級別徑流的預測效果Tab.3 The prediction performance of the four ensemble learning models on the three levels of runoff when the prediction lead time is 1 hour
根據(jù)安墩水流域九洲水文站的歷年逐時流量資料繪制出了測試期內(nèi)的四場洪水過程,并使用訓練好的各集成模型進行了洪水預測,預測情況如圖4 所示。這四場洪水中包含了前峰型洪水、后峰型洪水以及多峰型洪水,洪水歷時最短的為4 d多,最長的為8 d。從圖4中可以看出,對于不同類型、不同級別的洪水過程,這些集成模型均能夠合理重現(xiàn)出它們的特點以及隨時間的變化,體現(xiàn)了其較高的穩(wěn)定性和魯棒性。此外,我們可以發(fā)現(xiàn)GBDT 集成模型在洪水起漲初期預測效果較好,但在預測洪峰流量時效果不如另外3種模型。
圖4 4種集成模型對4場洪水的預測結果Fig.4 Forecast results of four ensemble learning models in four flood events
本研究利用前饋神經(jīng)網(wǎng)絡(FFNN)、長短期記憶神經(jīng)網(wǎng)絡(LSTM)、支持向量回歸(SVR)、自回歸積分滑動平均模型(ARIMA)以及分類回歸樹(CART)作為基學習器,分別建立了bagging集成模型、stacking 集成模 型、GBDT 集成模型以及AdaBoost 集成模型,實現(xiàn)對安墩水流域小時尺度的徑流預測,并通過相關系數(shù)(CC)、平均絕對誤差(MAE)、平均相對誤差(MRE)、均方根誤差(RMSE)、納什效率系數(shù)(NSE)、達標率(QR)等指標進行比較分析,得到如下結果。
(1)若從業(yè)務預報中最常用的MRE指標來看,測試期bagging 集成模型對1~4 h 預見期的預測結果分別為0.086、0.141、0.188、0.211;stacking集成模型分別為0.090、0.160、0.187、0.240;GBDT 集成模型分別為0.079、0.155、0.240、0.292;AdaBoost 集成模型分別為0.091、0.154、0.189、0.218,均表明這四類集成模型可用于短期徑流預測,且精度尚可,其中bagging集成模型的性能為4種中最優(yōu)。
(2)隨著預見期的增大,從穩(wěn)定性的角度來看,穩(wěn)定性從大到小排序為:bagging 集成模型>AdaBoost 集成模型>GBDT 集成模型>stacking集成模型。
(3)對于基流,bagging集成模型和stacking 集成模型均有不錯的預測效果;對于中等流,4 種集成模型的預測效果差異不大;而對于洪水,AdaBoost 集成模型的表現(xiàn)明顯優(yōu)于其他3 種模型。
(4)綜合以上,對于安墩水流域的短期徑流預報,可優(yōu)先考慮bagging集成模型或AdaBoost集成模型。 □