梁曉鑫,崔東文
(1.云南省水文水資源局文山分局 云南 文山 661100;2.云南省文山州水務(wù)局 云南 文山 663000)
徑流時間序列是指月徑流數(shù)據(jù)按照時間先后順序排列而成的數(shù)列,開展徑流時間序列分析預(yù)測對水文預(yù)測預(yù)報、水資源開發(fā)利用等具有重大意義。水文時間序列影響因素眾多、變化復(fù)雜,表現(xiàn)出較強的非線性、非平穩(wěn)性和多尺度等特征,傳統(tǒng)自回歸類模型、集對分析模型、灰色模型等傳統(tǒng)擬線性預(yù)測方法存在著局限性,難以獲得理想的預(yù)測效果[1]。當(dāng)前,基于“分解—預(yù)測—重構(gòu)”模式的時間序列預(yù)測方法被廣泛應(yīng)用于水文時間序列徑流預(yù)測,并取得較好的預(yù)測效果。常見的時間序列分解方法有小波變換(WT)、經(jīng)驗?zāi)B(tài)分解(EMD)、集合經(jīng)驗?zāi)B(tài)分解(EEMD)、變分模態(tài)分解(VMD)、奇異譜分析(SSA)等方法;預(yù)測模型主要有BP神經(jīng)網(wǎng)絡(luò)[2-3]、廣義回歸神經(jīng)網(wǎng)絡(luò)(GRNN)[4]、支持向量機(SVM)[5]、相關(guān)向量機(RVM)[6]、極限學(xué)習(xí)機(RELM)[7]等。
為進一步提高水文時間序列預(yù)測精度,克服單一模型的不足,本文基于“序列分解—參數(shù)優(yōu)化—分項預(yù)測—結(jié)果疊加”思想和“奇異譜分析(Singular Spectrum Analysis,SSA)、梯度優(yōu)化(gradient-based optimizer,GBO)算法、相關(guān)向量機(relevance vector machine,RVM)與支持向量機(Support Vector Machines,SVM)”方法,提出SSA-GBO-RVM、SSA-GBO-SVM月徑流時間序列融合預(yù)測模型。通過SSA對月徑流數(shù)據(jù)進行處理,提取多個獨立子序列,達到降低徑流數(shù)據(jù)復(fù)雜性的目的;針對RVM核寬度因子和超參數(shù)、SVM懲罰因子和核函數(shù)參數(shù)對RVM、SVM預(yù)測性能影響較大以及參數(shù)難以選取等問題,采用GBO算法優(yōu)選RVM、SVM關(guān)鍵參數(shù),達到提升RVM、SVM預(yù)測性能的效果;利用云南省龍?zhí)墩?5年共780個月月徑流數(shù)據(jù)對SSA-GBO-RVM、SSA-GBO-SVM模型預(yù)測性能進行檢驗,旨在驗證SSA-GBO-RVM、SSA-GBO-SVM模型用于月徑流時間序列預(yù)測的可行性和可靠性。
SSA依據(jù)所觀測到的時間序列構(gòu)造出軌跡矩陣,并對軌跡矩陣進行分解、重構(gòu),從而提取出代表原時間序列不同成分子序列[8-10]。SSA包含分解與重構(gòu)2個階段。
a)分解。選取窗口長度L構(gòu)造軌跡矩陣X如下:
(1)
式中M——時間序列長度;L——窗口長度,即嵌入維數(shù),一般為不超過序列長度1/3的整數(shù)。
對矩陣X進行SVD(singular value decomposition,SVD)分解:
(2)
式中λi——第i個特征值;Ui——與第i個特征值對應(yīng)的特征向量;Vi——第i個主成分;d=rank(X)=max{i:λi>0}。
(3)
式中 向量數(shù)量K=M-L+1;L*=min(L,K);K*=max(L,K)。
1.2.1GBO算法簡述
梯度優(yōu)化(GBO)算法是Ahmadianfar I 等人受牛頓-梯度下降法啟發(fā)而提出的一種新型元啟發(fā)式優(yōu)化算法。與傳統(tǒng)元啟發(fā)式優(yōu)化算法相比,GBO算法不但實現(xiàn)簡單,設(shè)置參數(shù)少(僅需設(shè)置種群規(guī)模和最大迭代次數(shù)),而且具有較好的探索、開發(fā)、收斂能力和有效避免局部極值的能力。參考文獻[12],GBO算法數(shù)學(xué)描述簡述如下。
a)初始化。GBO算法中,種群個體被稱為“向量”,該“向量”在D維搜索空間中可表示為Xn,d=[Xn,d,Xn,d,…,Xn,d],n=1,2,…,N;d=1,2,…,D,在D維搜索空間中隨機生成初始向量Xn表示為:
Xn=Xmin+rand(0,1)×(Xmax-Xmin)
(4)
式中Xmax、Xmin——搜索空間上下限值;rand——[0,1]范圍內(nèi)隨機數(shù)。
b)梯度搜索規(guī)則(GSR)。GSR規(guī)則可以幫助GBO算法在優(yōu)化過程中解決隨機行為,從而促進探索并避免局部最優(yōu);運動方向(DM)用于創(chuàng)建合適的局部搜索趨勢,以提高GBO算法的收斂速度。梯度搜索規(guī)則(GSR)與運動方向(DM)數(shù)學(xué)描述如下:
(5)
(6)
GBO算法第m+1次迭代向量位置更新描述如下:
(7)
其中,
(8)
(9)
(10)
(11)
(12)
式中f1——[-1,1]范圍內(nèi)隨機數(shù);f2——平均值為0、標(biāo)準(zhǔn)差為1的正態(tài)分布隨機數(shù);pr——概率;u1、u2、u3——3個隨機數(shù);其他參數(shù)意義同上。
1.2.2GBO算法仿真驗證
選取6個典型測試函數(shù)在不同維度條件下20次尋優(yōu)平均值對GBO算法尋優(yōu)性能進行評估,并與文獻[11]海洋捕食者算法(MPA)、粒子群優(yōu)化(PSO)算法的仿真結(jié)果進行比較,結(jié)果見表1。實驗參數(shù)設(shè)置如下:GBO、MPA、PSO算法群體規(guī)模N=100,最大迭代次數(shù)M=500,其他采用算法默認(rèn)值。
表1 函數(shù)優(yōu)化對比結(jié)果
a)對于單峰函數(shù),GBO算法在不同維度條件下尋優(yōu)精度分別較MPA和PSO算法提高113、88、61和134、102、 68個數(shù)量級以上,具有較好的尋優(yōu)精度。
b)對于多峰函數(shù)Griewank、Rastrigin、Ackley,GBO算法在不同維度條件下20次尋優(yōu)均獲得了相對理論最優(yōu)值0和8.88e-16,尋優(yōu)精度略優(yōu)于MPA,遠優(yōu)于PSO算法,具有較好的全局搜索能力。
可見,GBO算法對上述6個測試函數(shù)均具有較好的尋優(yōu)精度和全局搜索能力。
RVM是一種基于貝葉斯推理的稀疏概率機器學(xué)習(xí)模型,其基本算法簡述如下[13-16]。
(13)
(14)
式中t=(t1,t2,…,tN)T;Φ——N×(N+1)的核函數(shù)矩陣。
為避免ω和σ2過擬合,常使用零均值高斯先驗概率分布約束參數(shù):
(15)
式中α——一個N+1超參數(shù)向量。
基于貝葉斯公式,后驗分布的權(quán)重描述為:
(16)
式中μ=σ-2∑ΦTt;∑=(σ-2ΦTΦ+A)-1;A=diag(α0,α1,…,αN)。
為建立統(tǒng)一的超參數(shù),p(t|α,σ2)定義如下:
(17)
本文利用高斯徑向基核函數(shù)(RBF)作為核函數(shù),即:
(18)
式中d——核函數(shù)寬度因子。
設(shè)含有l(wèi)個訓(xùn)練樣本的集合為{(xi,yi),i=1,2,…,l},xi(xi∈Rd)為第i個訓(xùn)練樣本輸入列向量,yi∈R為對應(yīng)輸出值[17-18]。則SVM在高維特征空間中建立的線性回歸函數(shù)為:
f(x)=wΦ(x)+b
(19)
式中Φ(x)——非線性映射函數(shù);w——超平面的法向量;b——超平面的偏移量。
(20)
選擇徑向基核函數(shù)作為SVM核函數(shù),徑向基核函數(shù)表達式為:
(21)
式中g(shù)>0。
SSA-GBO-RVM、SSA-GBO-SVM建模預(yù)測實現(xiàn)流程見圖1,實現(xiàn)步驟如下。
圖1 實例月徑流預(yù)測流程
步驟一采用SSA方法將原徑流序列分解為多個獨立的子序列;通過自相關(guān)函數(shù)法(Autocorrelation Function Method,AFM)確定各子序列輸入向量,合理劃分訓(xùn)練樣本和預(yù)測樣本。
步驟二構(gòu)建適應(yīng)度函數(shù):
(22)
圖2 奇異譜分析分解圖與原始月徑流量
步驟八分別利用GBO-RVM、GBO-SVM模型對各子序列進行預(yù)測,預(yù)測結(jié)果疊加即得到實例月徑流預(yù)測的最終結(jié)果。
步驟九分別采用平均絕對百分比誤差(mean absolute percentage error,MAPE)、平均絕對誤差(mean absolute error,MAE)和納什系數(shù)(Nash-Sutcliffe efficiency coefficient,NSE)對各預(yù)測模型有效性進行評估,見式(23)。
(23)
龍?zhí)墩鞠导t河流域瀘江水系盤龍河干流控制站,控制徑流面積3 128 km2,為國家重要水文站和中央報汛站。盤龍河發(fā)源于紅河州蒙自縣鳴鷲鄉(xiāng),流經(jīng)西疇、馬關(guān)、麻栗坡于天保船頭附近注入越南,河長252.6 km,平均坡降8.73‰,中越國界以上流域面積6 497 km2,多年平均徑流量為26.93億m3。本文數(shù)據(jù)來源于龍?zhí)墩?952年1月至2016年12月實測月徑流序列,月徑流量變化過程見圖2。
SSSA分解確定子序列數(shù)量至關(guān)重要,若子序列數(shù)量過少,則不足以將原始序列中蘊含的不同成分提取出來;若子序列數(shù)量過多,則增加了模型復(fù)雜程度和建模工作量[8]。由于水文氣象是以年為周期,因此本文設(shè)置窗口長度L=12,即利用SSA方法將原月徑流時間序列數(shù)據(jù)分解為12個獨立的子序列,利用SSA-GBO-RVM、SSA-GBO-SVM模型分別對12個子序列進行預(yù)測,將預(yù)測結(jié)果疊加后得到最終預(yù)測結(jié)果。SSA分解與月徑流隨時間變化趨勢見圖2。從圖2可以看出,子序列1振幅最大、頻率最高、波長最短,大致反映了原月徑流時間序列的變化趨勢;子序列2—12振幅逐漸減小、頻率逐漸降低、波長逐漸變長,反映了原徑流時間序列的波動情況。
本文采用AFM法確定各子序列的輸入向量,通過計算各子序列逐月徑流數(shù)據(jù)序列的自相關(guān)系數(shù),將自相關(guān)系數(shù)最大時所對應(yīng)的滯后數(shù)Y作為各子序列的最優(yōu)嵌入維數(shù),即將預(yù)測月的前Y個徑流量數(shù)據(jù)作為輸入向量,預(yù)測月作為輸出向量,見表2。本文利用實例后120個月作為預(yù)測樣本。
表2 各子序列自相關(guān)系數(shù)、嵌入維數(shù)及序列長度
2.4.1參數(shù)設(shè)置
SSA-GBO-RVM、SSA-GBO-SVM模型參數(shù)設(shè)置為:GBO算法種群規(guī)模N=50,最大迭代次數(shù)M=100;核函數(shù)選擇徑向基核函數(shù)RBF。其中,RVM超參數(shù)和核函數(shù)寬度因子搜索范圍均設(shè)置為[-10,10];SVM懲罰因子、核函數(shù)參數(shù)搜索范圍均設(shè)置為[0.01,100],交叉驗證折數(shù)設(shè)置為3,不敏感損失系數(shù)設(shè)置為0.01,原始數(shù)據(jù)采用[-1,1]進行歸一化處理。
2.4.2月徑流預(yù)測及比較
利用SSA-GBO-RVM、SSA-GBO-SVM模型對實例子序列1—12進行訓(xùn)練及預(yù)測,將結(jié)果進行疊加即得到實例月徑流訓(xùn)練及預(yù)測的最終結(jié)果。采用平均絕對百分比誤差MAPE、平均絕對誤差MAE和納什系數(shù)NSE對各模型性能進行評估,結(jié)果見表3;訓(xùn)練及預(yù)測效果見圖3—6。
表3 實例136個月月徑流預(yù)測結(jié)果對比表
圖3 SSA-GBO-RVM模型訓(xùn)練效果
圖4 SSA-GBO-RVM模型預(yù)測效果
圖5 SSA-GBO-SVM模型訓(xùn)練效果
圖6 SSA-GBO-SVM模型預(yù)測效果
依據(jù)表3及圖3—6可以得出以下結(jié)論。
a)SSA-GBO-RVM、SSA-GBO-SVM模型對實例月徑流時間序列擬合的MAPE分別為5.74%、5.69%,MAE分別為1.10、1.14 m3/s;預(yù)測的MAPE分別為6.20%、7.82%,MAE分別為0.88、1.00 m3/s,均具有較好的擬合、預(yù)測效果。表明SSA方法能有效將原徑流時間序列數(shù)據(jù)分解成多個更具規(guī)律的子序列,GBO算法能有效優(yōu)化RVM核寬度因子和超參數(shù)、SVM懲罰因子和核函數(shù)參數(shù),基于序列分解—參數(shù)優(yōu)化—分項預(yù)測—結(jié)果疊加思想構(gòu)建的SSA-GBO-RVM、SSA-GBO-SVM模型均具有較高的預(yù)測精度,將其用于水文時間序列預(yù)測是可行的。其中,SSA-GBO-RVM模型預(yù)測效果要優(yōu)于SSA-GBO-SVM模型。
b)SSA-GBO-RVM、SSA-GBO-SVM模型對實例訓(xùn)練樣本、預(yù)測樣本擬合、預(yù)測達到水文預(yù)報甲等精度等級的比例(相對誤差絕對值小于等于20%)分別均為96.9%、99.2%,滿足水文預(yù)報精度要求,均具有較好的預(yù)報效果。
c)SSA-GBO-RVM、SSA-GBO-SVM模型對實例訓(xùn)練樣本、預(yù)測樣本擬合、預(yù)測的納什系數(shù)NSE分別高達0.994 8、0.993 9和0.992 6、0.991 3,表明SSA-GBO-RVM、SSA-GBO-SVM模型用于月徑流時間序列預(yù)測可信度較高。其中,SSA-GBO-RVM模型可信度最高。
d)從圖3—6來看,SSA-GBO-RVM、SSA-GBO-SVM模型對實例月徑流時間序列擬合、預(yù)測的效果均較好,除少數(shù)樣本的相對誤差、絕對誤差較大外,絕大多數(shù)樣本的擬合、預(yù)測結(jié)果較接近實測值,滿足預(yù)測精度要求。其中,SSA-GBO-RVM模型預(yù)測結(jié)果更接近實測值,相對誤差更小、預(yù)測效果更佳。
本文基于序列分解—參數(shù)優(yōu)化—分項預(yù)測—結(jié)果疊加思想構(gòu)建SSA-GBO-RVM、SSA-GBO-SVM時間序列集成模型,通過云南省龍?zhí)墩驹聫搅鲿r間序列預(yù)測實例對SSA-GBO-RVM、SSA-GBO-SVM模型進行檢驗,得到以下結(jié)論。
a)通過6個單峰、多峰函數(shù)在不同維度條件下對GBO算法進行仿真驗證,并與MPA、PSO算法比較。驗證了GBO算法具有較好的尋優(yōu)精度和全局搜索能力。將GBO算法用于RVM核寬度因子和超參數(shù)、SVM懲罰因子和核函數(shù)參數(shù)尋優(yōu)是可靠的。
b)SSA-GBO-RVM、SSA-GBO-SVM模型對實例月徑流時間序列均具有較好的擬合、預(yù)測效果,模型具有較高的可信度,將其用于水文時間序列預(yù)測是可行的。其中,SSA-GBO-RVM模型優(yōu)于SSA-GBO-SVM模型。
c)實例驗證表明,SSA方法能有效將原徑流時間序列數(shù)據(jù)分解成多個更具規(guī)律的子序列,抽取出徑流序列的整體趨勢和不同周期上的波動情況;GBO算法能有效優(yōu)化RVM核寬度因子和超參數(shù)、SVM懲罰因子和核函數(shù)參數(shù);基于序列分解—參數(shù)優(yōu)化—分項預(yù)測—結(jié)果疊加思想構(gòu)建的SSA-GBO-RVM、SSA-GBO-SVM模型在水文時間序列徑流預(yù)測中均具有較高的預(yù)測精度和可信度。