李代華
(云南省水文水資源局文山分局,云南 文山 663000)
探索具有較好預測精度的模型及方法是徑流預測研究領域的難點和熱點。目前用于徑流預測的方法有BP[1-2]、GRNN[3]、Elman[4]、RBF[5]等人工神經(jīng)網(wǎng)絡法以及集對分析法[6]、灰色預測法[7]、支持向量機法[8-10]、投影尋蹤回歸法[11]、小波分析法[12]、隨機森林法[13-14]、組合預測法[15-16]等。上述方法中,由于支持向量機(support vector machine,SVM)和BP神經(jīng)網(wǎng)絡具有較好的逼近能力和預測效果而被廣泛應用于徑流預測,而如何選取SVM懲罰因子、核函數(shù)參數(shù)、不敏感系數(shù)和BP神經(jīng)網(wǎng)絡權值、閾值成為提高模型預測精度的關鍵。由于徑流序列具有較強的非線性和隨機性等多重特性,基于傳統(tǒng)或非傳統(tǒng)單一預測模型或方法已不能滿足徑流預測的精度需求。為進一步提高徑流預測精度,拓展現(xiàn)有預測模型及方法,本文提出基于主成分分析(principal component analysis,PCA)、斑鬣狗優(yōu)化(spotted hyena optimizer,SHO)算法與SVM、BP神經(jīng)網(wǎng)絡相融合的徑流預測模型,利用PCA對數(shù)據(jù)進行降維處理,采用SHO算法對SVM懲罰因子、核函數(shù)參數(shù)、不敏感系數(shù)以及BP神經(jīng)網(wǎng)絡權值、閾值進行優(yōu)化,分別建立PCA-SHO-SVM、PCA-SHO-BP徑流預測模型。將PCA-SHO-SVM、PCA-SHO-BP模型應用于云南省龍?zhí)端恼灸陱搅髁考翱菟?2月月徑流量預測,預測結果與利用SHO算法優(yōu)化但未經(jīng)降維處理的SHO-SVM和SHO-BP模型、經(jīng)降維處理但未利用SHO算法優(yōu)化的PCA-SVM和PCA-BP模型以及未經(jīng)降維處理也未利用SHO算法優(yōu)化的SVM和BP模型的預測結果進行對比,旨在檢驗PCA-SHO-SVM、PCA-SHO-BP模型的預測精度和泛化能力。
盤龍河發(fā)源于紅河州蒙自縣三道灣,自西北向東南流注,流經(jīng)硯山、丘北、文山、馬關、西疇、麻栗坡6縣,于天保船頭注入越南,交瀘江匯入紅河。盤龍河中越國界以上流域面積6 497 km2,河長247 km,落差1 803 m,平均坡降7.24‰,多年平均水資源量為26.7×108m3,自上而下主要支流有岔河、德厚河、馬過河、暮底河、鐮刀灣暗河、布都河等。龍?zhí)端恼驹O立于1951年4月,位于文山城區(qū)上游龍?zhí)墩?,集水面積為3 128 km2,觀測項目有水位、流量、降雨、蒸發(fā)、水溫、泥沙,屬國家重要水文站和中央報汛站,擔負著文山縣城重要的防洪報汛任務。
本文以云南省盤龍河龍?zhí)端恼?952-2005年實測水文資料為研究對象,分別利用實測1-10月月平均流量和實測1-11月月平均流量對同年度年徑流量和12月月徑流量進行預測。經(jīng)分析,該水文站1-10月月平均流量與年徑流量的相關系數(shù)分別為0.455、0.441、0.333、0.486、0.497、0.519、0.616、0.822、0.782、0.798,具有較好的相關性;該水文站1-11月月平均流量與12月月徑流量的相關系數(shù)分別為0.189、0.192、0.220、0.463、0.245、0.180、0.348、0.596、0.511、0.680,最大相關系數(shù)僅為0.680,相關性并不十分顯著。本文分別選取1-10月、1-11月月平均流量分別作為年徑流量和12月月徑流量的預報因子,前36 a實測徑流量數(shù)據(jù)作為訓練樣本,后18 a作為預測樣本。
利用SPSS17.0軟件對實例數(shù)據(jù)進行主成分分析降維處理。對于年徑流量和月徑流量預測的預報因子,前6個特征值累計貢獻率分別達93.475%和90.869%,根據(jù)累計貢獻率大于85%的原則,故選取前6個變量代替原10個和原11個變量進行年徑流量和月徑流量預測。降維后的數(shù)據(jù)統(tǒng)計見表1,原始數(shù)據(jù)限于篇幅從略。
表1 年徑流和月徑流預測影響因子降維統(tǒng)計表
(1)
式中:F1為第一主成分;F2為第二主成分,以此類推;n為原變量數(shù);m為新變量數(shù);aij為主成分系數(shù)。
2.3.2 斑鬣狗優(yōu)化(SHO)算法 斑鬣狗優(yōu)化(spotted hyena optimizer,SHO)算法[18]是Dhiman等于2017年基于斑鬣狗通過群體合作和自身能力進行捕獵行為而提出的一種新穎的啟發(fā)式算法。算法通過建立數(shù)學模型模擬斑鬣狗捕獵過程中的搜索獵物、包圍獵物、追捕獵物和攻擊獵物4種行為來實現(xiàn)SHO算法獲得最優(yōu)解的目的。根據(jù)參考文獻[19~21],SHO數(shù)學描述簡述如下:
(2)包圍獵物。斑鬣狗熟悉目標獵物所處位置,采用包圍策略接近獵物。并認定當前最好的斑鬣狗搜索個體位置即為獵物位置。其他斑鬣狗個體會隨著獵物移動而不斷更新它們當前的位置。利用數(shù)學模型表示斑鬣狗包圍獵物行為如下:
(2)
(3)
(3)追捕獵物。斑鬣狗通常成群生活和狩獵,并依靠識別獵物所處位置的能力和個體間的信任進行捕獵。利用數(shù)學模型表示斑鬣狗追捕獵物行為如下:
(4)
(5)
(6)
(7)
(8)
本文選擇徑向基核函數(shù)作為SVM核函數(shù),徑向基核函數(shù)表達式為:
K(x,xi)=exp(-g‖x-xi‖2)
(9)
式中:g為支持向量機的核函數(shù)參數(shù),g>0。
2.3.4 BP神經(jīng)網(wǎng)絡 設典型3層BP神經(jīng)網(wǎng)絡輸入維數(shù)為m、隱層為l、輸出維數(shù)為1,參考相關文獻[1]、[2]、[22],BP神經(jīng)網(wǎng)絡完成映射f:Rm→R1的數(shù)學表達式可表示如下:
(10)
(j=1,2,…,p)
式中:lj為隱層到輸出層的連接權值;bj為隱層節(jié)點的輸出;ε為輸出層的閾值。采用Sigmoid函數(shù)的隱層節(jié)點輸出表示如下:
式中:ωij為輸入層至隱層的連接權值;θj為隱層節(jié)點的閾值。
2.3.5 預測實現(xiàn)步驟
Step 1:利用SPSS17.0對實例原始數(shù)據(jù)進行降維處理,按序列長度2∶1劃分訓練樣本和預測樣本,將處理后的數(shù)據(jù)分別作為SHO-SVM、SHO-BP模型的樣本數(shù)據(jù)進行輸入訓練。
Step 2:利用訓練樣本與實測值均方誤差構建待優(yōu)化適應度目標函數(shù),如函數(shù)式(12)所示。
(12)
Step 3:設置斑鬣狗群體規(guī)模N,最大迭代次數(shù)T和算法終止條件。初始化斑鬣狗種群位置Pi和SHO 算法參數(shù)h、B、E。
Step 4:計算每個斑鬣狗搜索個體適應度值。
Step 6:檢查是否有任何斑鬣狗個體超出給定搜索空間的邊界并進行調整。
依據(jù)前文建立PCA-SHO-SVM、PCA-SHO-BP、SHO-SVM、SHO-BP、PCA-SVM、PCA-BP、SVM、BP模型對實例年徑流量和月徑流量進行訓練及預測。并通過平均相對誤差MRE(%)、平均絕對誤差MAE(m3/s)和最大相對誤差REmax(%)對8種模型的年徑流量和月徑流量預測結果進行評價,結果見表2,訓練-預測相對誤差效果圖見圖1。
模型參數(shù)設置為:SVM模型懲罰因子C、核函數(shù)參數(shù)g、不敏感系數(shù)ε搜索范圍∈[2-10,210],交叉驗證折數(shù)V=5;BP神經(jīng)網(wǎng)絡隱含層節(jié)點數(shù)通過輸入層節(jié)點數(shù)的2倍減1確定,隱含層傳遞函數(shù)采用logsig,輸出層傳遞函數(shù)采用purelin,訓練函數(shù)采用traingdx,期望誤差0.000 1,最大訓練輪回設置500次,搜索空間∈[-1,1]。SHO算法參數(shù)設置同上。
分析表2及圖1可以得出以下結論:
圖1 8種模型預測的年徑流量和月徑流量相對誤差
表2 不同模型徑流測結果及其對比
(1)從平均相對誤差MRE結果來看,PCA-SHO-SVM、PCA-SHO-BP模型對實例年徑流量預測的MRE分別為2.34%和2.50%,分別較SHO-SVM、SHO-BP、PCA-SVM、PCA-BP、SVM、BP模型的預測精度提高46.0%、45.5%、61.9%、66.4%、67.8%、73.7%和42.3%、41.7%、59.3%、64.1%、65.6%、71.9%;對實例月徑流量預測的MRE分別為6.15%和6.08%,分別較SHO-SVM、SHO-BP、PCA-SVM、PCA-BP、SVM、BP模型的預測精度提高15.5%、21.2%、47.4%、48.6%、52.1%、56.6%和16.5%、22.1%、48.0%、49.2%、52.6%、57.1%。從平均絕對誤差MAE結果來看,PCA-SHO-SVM、PCA-SHO-BP模型對實例年徑流量預測的MAE分別為0.511和0.535 m3/s,分別較SHO-SVM、SHO-BP、PCA-SVM、PCA-BP、SVM、BP模型的預測結果減小0.381、0.486、0.725、1.021、0.980、1.457 m3/s和0.357、0.462、0.701、0.997、0.956、1.433 m3/s;對實例月徑流量預測的MAE分別為1.035和1.006 m3/s,分別較SHO-SVM、SHO-BP、PCA-SVM、PCA-BP、SVM、BP模型的預測結果減小0.148、0.215、0.691、0.898、0.770、1.240 m3/s和0.177、0.244、0.720、0.927、0.799、1.269 m3/s;表明PCA能對大量原始數(shù)據(jù)進行有效的降維處理,SHO算法能有效優(yōu)化SVM懲罰因子、核函數(shù)參數(shù)、不敏感系數(shù)以及BP神經(jīng)網(wǎng)絡權值、閾值,PCA-SHO-SVM、PCA-SHO-BP模型用于徑流量預測是可行和有效的。
(2)從年徑流和月徑流預測結果來看,SHO-SVM、SHO-BP模型的擬合、預測精度要遠優(yōu)于SVM、BP模型,表明采用SHO算法優(yōu)化SVM關鍵參數(shù)以及BP神經(jīng)網(wǎng)絡權值、閾值能有效提高SVM、BP模型預測精度和泛化能力;PCA-SVM、PCA-BP模型的擬合、預測精度同樣優(yōu)于SVM、BP模型,表明PCA能對徑流預測影響因子原始數(shù)據(jù)進行有效降維,主成分變量能夠反映原始變量的大部分信息,使SVM、BP模型的預測精度得到進一步提高。
(3)從SHO-SVM、SHO-BP模型與PCA-SVM、PCA-BP模型的擬合、預測效果來看,采用SHO算法優(yōu)化SVM、BP相關參數(shù)對SVM、BP模型的預測精度提升要大于經(jīng)降維處理的SVM、BP模型。
本文建立了基于PCA-SHO-SVM、PCA-SHO-BP算法的徑流量預測模型,并通過實例年徑流量和月徑流量預測對PCA-SHO-SVM、PCA-SHO-BP模型的預測效果進行驗證。結果證明,PCA-SHO-SVM、PCA-SHO-BP模型具有較強的預測精度和泛化能力。并得出以下主要結論:
(1)PCA-SHO-SVM、PCA-SHO-BP模型對實例年徑流量和月徑流量的預測效果優(yōu)于SHO-SVM、SHO-BP、PCA-SVM、PCA-BP、SVM、BP模型,表明PCA能對大量原始數(shù)據(jù)進行有效的降維處理,SHO算法能有效優(yōu)化SVM懲罰因子、核函數(shù)參數(shù)、不敏感系數(shù)以及BP神經(jīng)網(wǎng)絡權值、閾值,PCA-SHO-SVM、PCA-SHO-BP模型用于徑流預測是可行和有效的,PCA-SHO-SVM、PCA-SHO-BP模型均具有較好的預測精度和泛化能力。
(2)采用SHO算法優(yōu)化SVM、BP相關參數(shù)以及利用PCA方法對徑流量預測影響因子原始數(shù)據(jù)進行降維,能有效提高SVM、BP模型的預測精度和泛化能力。相對而言,采用SHO算法優(yōu)化SVM、BP相關參數(shù)對SVM、BP模型的預測精度提升要大于經(jīng)降維處理的SVM、BP模型。