,
(1.云南省水文水資源局文山分局,云南文山663099;2.云南省文山州水務(wù)局,云南文山663099)
提高徑流預(yù)測(cè)精度一直是水文預(yù)測(cè)預(yù)報(bào)中的熱點(diǎn)和難點(diǎn)。目前,除常規(guī)回歸分析、數(shù)理統(tǒng)計(jì)等方法用于徑流預(yù)測(cè)外,BP、GRNN、RBF等神經(jīng)網(wǎng)絡(luò)法[1-3]、支持向量機(jī)法[4-5]、集對(duì)分析法[6-7]、投影尋蹤回歸法[8]、小波分解混合法[9-10]以及隨機(jī)森林法[11]等非常規(guī)方法嘗試用于徑流預(yù)測(cè),并取得了較好的預(yù)測(cè)效果。然而,由于受自然條件、人類活動(dòng)等眾多確定性因素和隨機(jī)因素的影響,致使徑流的形成和變化過程異常復(fù)雜,僅依靠單一的常規(guī)或非常規(guī)方法進(jìn)行徑流預(yù)測(cè),往往難以達(dá)到理想的預(yù)測(cè)效果和精度。上述各種常規(guī)和非常規(guī)預(yù)測(cè)方法均有其優(yōu)點(diǎn)及不足,組合預(yù)測(cè)法就是利用組合預(yù)測(cè)的思想,有效綜合各組合單元優(yōu)勢(shì),同時(shí)克服組合單元在應(yīng)用上的不足,從而達(dá)到提高組合模型預(yù)測(cè)精度和泛化能力的目的[12]。隨機(jī)森林(Random Forest,RF)是由Leo Breiman提出的一種集成機(jī)器學(xué)習(xí)方法,可應(yīng)用于分類問題、回歸問題以及特征選擇問題,其主要利用Bootsrap重抽樣方法從原始樣本中抽取多個(gè)樣本,對(duì)每個(gè)Bootsrap樣本進(jìn)行決策樹建模,然后組合多棵決策樹通過投票方式得出最終評(píng)價(jià)結(jié)果[13]。由于RF是基于決策樹分類器的融合算法,可以看成由很多弱分類器(決策樹)集成的強(qiáng)分類器,可有效避免“過擬合”和“欠擬合”現(xiàn)象的發(fā)生,對(duì)解決多變量預(yù)測(cè)具有很好的效果,被譽(yù)為當(dāng)前最好的機(jī)器學(xué)習(xí)算法之一[14-15],已在各領(lǐng)域及徑流預(yù)測(cè)[11]中得到應(yīng)用。支持向量機(jī)(Support Vector Machines,SVM)基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則,能有效避免維數(shù)災(zāi)、過擬合等問題,具有高容錯(cuò)性、智能化和自學(xué)習(xí)等優(yōu)點(diǎn),已在各行業(yè)領(lǐng)域及水文預(yù)測(cè)預(yù)報(bào)[16-17]中得到廣泛應(yīng)用。在實(shí)際應(yīng)用中,RF決策樹數(shù)量ntree、分裂屬性個(gè)數(shù)mtry和SVM懲罰因子C、核函數(shù)參數(shù)g等參數(shù)是決定RF、SVM預(yù)測(cè)性能的關(guān)鍵。目前普遍采用試湊法或網(wǎng)絡(luò)搜索法[12,16]確定RF、SVM關(guān)鍵參數(shù),但預(yù)測(cè)效果往往不理想。
為有效提高徑流預(yù)測(cè)精度,本文提出一種基于陰陽(yáng)對(duì)(Yin-Yang-pair Optimization,YYPO)算法優(yōu)化的RF-SVM組合預(yù)測(cè)方法,利用YYPO算法對(duì)RF、SVM關(guān)鍵參數(shù)和組合權(quán)重系數(shù)進(jìn)行優(yōu)化,構(gòu)建YYPO-RF-SVM預(yù)測(cè)模型,并構(gòu)建基于YYPO算法優(yōu)化關(guān)鍵參數(shù)的YYPO-RF、YYPO-SVM模型及人工試湊法確定關(guān)鍵參數(shù)的RF、SVM模型作對(duì)比分析模型,以云南省某水文站年徑流預(yù)測(cè)為例進(jìn)行實(shí)例研究,旨在驗(yàn)證YYPO-RF-SVM模型在提高徑流預(yù)測(cè)精度應(yīng)用中的可行性和有效性。
陰陽(yáng)對(duì)優(yōu)化(YYPO)算法是Varun Punnathanam等人于2016年基于陰陽(yáng)平衡原理提出的一種新型元啟發(fā)式優(yōu)化算法。該算法基于2個(gè)點(diǎn)集(P1和P2),其中P1設(shè)計(jì)為專注于開發(fā)變量空間,P2設(shè)計(jì)為專注于探索變量空間,通過開發(fā)與探索2個(gè)矛盾行為之間的相互協(xié)調(diào)、補(bǔ)充達(dá)到平衡,并利用分裂、存儲(chǔ)2個(gè)階段進(jìn)行迭代更新來求解最優(yōu)化問題,目前已在函數(shù)、多目標(biāo)優(yōu)化等領(lǐng)域得到應(yīng)用,文獻(xiàn)[18]證明了YYPO算法具有較好的收斂速度和全局極值尋優(yōu)能力,尋優(yōu)效果優(yōu)于傳統(tǒng)遺傳算法、粒子群優(yōu)化算法等。參考文獻(xiàn)[18],YYPO算法數(shù)學(xué)描述簡(jiǎn)述如下。
1.1.1設(shè)置待優(yōu)化
設(shè)置待優(yōu)化問題維度D,隨機(jī)初始化2個(gè)點(diǎn)集P1={P11,P12,P13,…,P1D}和P2={P21,P22,P23,…,P2D}。對(duì)點(diǎn)集P1和P2進(jìn)行歸一化處理,即0≤(P1j,P2j)≤1,其中,j=1,2,3,…,D。
1.1.2分裂階段
a) 單向分裂:在YYPO算法中,點(diǎn)P的二維相同副本被存儲(chǔ)為S,其可以被認(rèn)為是尺寸為2D×D的矩陣。S中每個(gè)點(diǎn)的一個(gè)變量用下面的公式修改:
(1)
式中 下標(biāo)——點(diǎn)號(hào);上標(biāo)——正被修改的決策變量號(hào);r——在0和1之間的隨機(jī)數(shù),對(duì)于S中任意點(diǎn)的每個(gè)變量產(chǎn)生新的r,共需2D×D個(gè)0和1之間的隨機(jī)數(shù);δ——搜索半徑。
b)D向分裂:在YYPO算法中,點(diǎn)P的2D相同副本被存儲(chǔ)為S,其可以被認(rèn)為是2D×D大小的矩陣,生成包含長(zhǎng)度為D的二維隨機(jī)二進(jìn)制矩陣B,使得每個(gè)二進(jìn)制串是唯一的。隨后,使用以下等式來修改任意點(diǎn)的每個(gè)變量:
(2)
式中 下標(biāo)——點(diǎn)號(hào)(或行);上標(biāo)——決策變量號(hào)(或列);r、δ意義同上;二進(jìn)制矩陣B通過隨機(jī)選擇0~2D-1之間的唯一整數(shù)并轉(zhuǎn)換成長(zhǎng)度為D的二進(jìn)制串來組成。
1.1.3存儲(chǔ)階段
存儲(chǔ)階段是在滿足所需數(shù)量的存儲(chǔ)更新之后啟動(dòng),且該存儲(chǔ)階段包含2I個(gè)點(diǎn)(I為存儲(chǔ)階段的更新次數(shù)大小),對(duì)應(yīng)于在分裂階段前每個(gè)更新中添加的2個(gè)點(diǎn)P1、P2。若存儲(chǔ)中的最佳點(diǎn)比點(diǎn)P1、P2更合適,則與點(diǎn)P1、P2交換。存儲(chǔ)階段因此保持精英主義并且確保算法的單調(diào)收斂(即在任何迭代中確定的最佳點(diǎn)不會(huì)丟失)。在存儲(chǔ)階段結(jié)束時(shí),存儲(chǔ)矩陣設(shè)置為空,并且在其指定范圍Imin和Imax(Imin和Imax分別為存儲(chǔ)更新的最小數(shù)和最大數(shù))內(nèi)隨機(jī)生成存儲(chǔ)更新I的新值。搜索半徑δ1和δ2的更新公式如下:
(3)
式中δ1、δ2——點(diǎn)集P1、P2的搜索半徑;a——擴(kuò)張/收縮因子。
YYPO算法的特點(diǎn)在于隨機(jī)生成的點(diǎn)集數(shù)量取決于問題維度,針對(duì)高維優(yōu)化問題將生成較多的點(diǎn),這種自適應(yīng)能力能有效解決不同維度問題并獲得待優(yōu)化問題的最優(yōu)解。
隨機(jī)森林(RF)是由Leo Breiman提出的一種集成機(jī)器學(xué)習(xí)方法,該法通過隨機(jī)的方法建立一個(gè)由許多決策樹組成的森林,每棵決策樹之間沒有關(guān)聯(lián);每棵決策樹均采用bootstrap方法進(jìn)行采樣,隨機(jī)產(chǎn)生k個(gè)訓(xùn)練集,利用每個(gè)訓(xùn)練集生成對(duì)應(yīng)的決策樹;然后再?gòu)乃蠱個(gè)決策屬性中隨機(jī)抽取m個(gè)屬性進(jìn)行預(yù)測(cè);在訓(xùn)練過程中,一般m的取值維持不變;訓(xùn)練結(jié)束后,當(dāng)測(cè)試樣本輸入時(shí),每棵決策樹均對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),并將所有決策樹中出現(xiàn)最多的投票結(jié)果作為最終預(yù)測(cè)結(jié)果,具體算法步驟見文獻(xiàn)[19-20]。
假設(shè)對(duì)于一個(gè)測(cè)試樣本x,第l棵決策樹的輸出為ftree,l(x)=i,i=1,2,…,c,即為其對(duì)應(yīng)的輸出值,l=1,2,…,L,L為RF中的決策樹棵數(shù),則RF的輸出可表示為:
fRF(x)=argmax{I(ftree,l(x)=i)}i=1,2,…,c
(4)
式中I(·)——滿足括號(hào)中表達(dá)式的樣本個(gè)數(shù)。
研究表明,決策樹數(shù)量ntree和分裂屬性個(gè)數(shù)mtry的合理選取是提高RF預(yù)測(cè)精度的關(guān)鍵,ntree設(shè)置過小易使RF訓(xùn)練不充分而導(dǎo)致模型“欠擬合”,設(shè)置太大又易使RF過度訓(xùn)而導(dǎo)致“過擬合”;同樣,mtry設(shè)置太小易使RF過度訓(xùn)練而導(dǎo)致“過擬合”,設(shè)置太大會(huì)使得RF訓(xùn)練不充分而導(dǎo)致模型“欠擬合”?!斑^擬合”“欠擬合”均會(huì)降低RF模型的預(yù)測(cè)或分類性能[21]。
SVM原理是通過核函數(shù)將低維空間中非線性回歸問題映射到高維特征空間,然后在高維特征空間中求解凸優(yōu)化問題。設(shè)含有l(wèi)個(gè)訓(xùn)練樣本的集合為{(xi,yi),i=1,2,…,l},xi(xi∈Rd)為第i個(gè)訓(xùn)練樣本輸入列向量,yi∈R為對(duì)應(yīng)輸出值[22-23]。則在高維特征空間中建立的線性回歸函數(shù)為:
f(x)=wΦ(x)+b
(5)
式中Φ(x)——非線性映射函數(shù);w——超平面的法向量;b——超平面的偏移量。
(6)
式中ε——線性不敏感損失函數(shù)。
最終回歸函數(shù)為:
(7)
選擇徑向基核函數(shù)作為SVM核函數(shù),徑向基核函數(shù)表達(dá)式為:
K(x,xi)=exp(-g‖x-xi‖2)
(8)
式中,g>0。
研究表明,懲罰因子C、核函數(shù)參數(shù)g和不敏感系數(shù)ε的合理選取決定著混合核SVM性能。C取值過小則易導(dǎo)致網(wǎng)絡(luò)欠擬合,訓(xùn)練樣本誤差大,取值過大則網(wǎng)絡(luò)過擬合,導(dǎo)致網(wǎng)絡(luò)泛化能力差;g取值小則擬合誤差小,但過小的g值會(huì)導(dǎo)致模型過擬合;ε值用于控制模型的預(yù)測(cè)能力,ε值小易導(dǎo)致模型欠擬合,ε值大則易導(dǎo)致模型過擬合?!斑^擬合”“欠擬合”均會(huì)降低SVM模型的預(yù)測(cè)或分類性能。
本文預(yù)測(cè)模型構(gòu)建基本思路是:基于YYPO算法及RF、SVM單元,構(gòu)建YYPO-RF-SVM組合預(yù)測(cè)模型,確定組合模型待優(yōu)化目標(biāo)函數(shù)、關(guān)鍵參數(shù)及組合權(quán)重系數(shù)的搜索范圍,利用YYPO算法同時(shí)對(duì)YYPO-RF-SVM模型決策樹數(shù)量ntree、分裂屬性個(gè)數(shù)mtry、懲罰因子C、核函數(shù)參數(shù)g、不敏感系數(shù)ε和權(quán)重系數(shù)ωRF進(jìn)行優(yōu)化,將優(yōu)化獲得的最佳參數(shù)和權(quán)重系數(shù)代入組合模型進(jìn)行預(yù)測(cè)。YYPO-RF-SVM組合模型預(yù)測(cè)實(shí)現(xiàn)步驟可歸納如下。
Step1合理劃分實(shí)例訓(xùn)練樣本、檢驗(yàn)樣本和預(yù)測(cè)樣本。設(shè)定YYPO-RF-SVM模型決策樹數(shù)量ntree、分裂屬性個(gè)數(shù)mtry、懲罰因子C、核函數(shù)參數(shù)g、不敏感系數(shù)ε和RF模型單元權(quán)重系數(shù)ωRF的搜尋范圍。
Step2確定組合模型適應(yīng)度函數(shù)。選用檢驗(yàn)樣本的平均相對(duì)誤差絕對(duì)值之和作為適應(yīng)度函數(shù)。適應(yīng)度函數(shù)f描述如下:
(9)
Step3初始化參數(shù)。設(shè)置YYPO算法最大迭代次數(shù)T,存儲(chǔ)更新最大、最小數(shù)Imax和Imin,擴(kuò)展/收縮因子a,初始搜索半徑δ1=0.5、δ2=0.5。設(shè)置當(dāng)前迭代次數(shù)i=0,利用YYPO算法對(duì)式(9)進(jìn)行優(yōu)化。
Step4隨機(jī)初始化2個(gè)點(diǎn)集P1={P11,P12,P13,…,P1D}和P2={P21,P22,P23,…,P2D},并初始化點(diǎn)集P1、P2搜索半徑δ1和δ2;在Imin和Imax之間隨機(jī)生成I。
Step5利用目標(biāo)函數(shù)評(píng)估點(diǎn)集P1、P2的適應(yīng)度值,若P1優(yōu)于P2,則P1、P2互換;存儲(chǔ)P1、P2,并令i=i+1。
Step6利用式(1)、(2)分別執(zhí)行P1、P2分裂和存儲(chǔ)操作,并獲得更新的P1、P2以及對(duì)應(yīng)的適應(yīng)度值;若存儲(chǔ)中的最佳點(diǎn)比點(diǎn)P1、P2更合適,則與點(diǎn)P1、P2交換。
Step7利用式(3)更新點(diǎn)集P1、P2的搜索半徑δ1和δ2。
Step8存儲(chǔ)矩陣設(shè)置為空,并在其指定范圍Imin和Imax內(nèi)隨機(jī)生成存儲(chǔ)更新I的新值,存儲(chǔ)階段結(jié)束。
Step9判斷算法是否達(dá)到最大迭代次數(shù)T,若是,輸出最佳點(diǎn)適應(yīng)度值及所處空間位置,即待優(yōu)化問題最優(yōu)解,算法結(jié)束;否則重復(fù)Step4—9。
Step10利用YYPO算法優(yōu)化獲得的決策樹數(shù)量ntree、分裂屬性個(gè)數(shù)mtry、懲罰因子C、核函數(shù)參數(shù)g、不敏感系數(shù)ε和權(quán)重系數(shù)ωRF代入YYPO-RF-SVM模型對(duì)預(yù)測(cè)樣本進(jìn)行預(yù)測(cè)。
實(shí)例數(shù)據(jù)來源于云南省某水文站1952—2005年共54 a的水文資料。經(jīng)分析,該水文站年均徑流量與同期1—11月月徑流存在相關(guān)關(guān)系,見表1。
表1 年均徑流量與同年1—11月月相關(guān)系數(shù)
注:加粗內(nèi)容為所選輸入向量序列
從表1來看,該水文站年均徑流量與同期1—11月月徑流相關(guān)系數(shù)在0.333~0.822之間,具有較好的相關(guān)性。本文選取6—10月月均徑流量作為影響因子預(yù)測(cè)同期年均徑流量,并利用該站1952—1981年實(shí)測(cè)資料作為訓(xùn)練樣本,1982—1995年作為檢驗(yàn)樣本,1996—2005年作為預(yù)測(cè)樣本。
YYPO算法最大迭代次數(shù)T=200,存儲(chǔ)更新最小數(shù)Imin=1、最大數(shù)Imax=4,擴(kuò)展/收縮因子a=50,初始搜索半徑δ1=0.5、δ2=0.5。YYPO-RF-SVM模型待優(yōu)化參數(shù)搜索空間設(shè)置為:決策樹數(shù)量ntree∈[1,1000],分裂屬性個(gè)數(shù)mtry∈[1,30],懲罰因子C∈[2-10,210],核函數(shù)參數(shù)g∈[2-10,210],不敏感系數(shù)ε∈[2-10,210],交叉驗(yàn)證參數(shù)V=5,權(quán)重系數(shù)ωRF∈[0,1]。利用YYPO算法優(yōu)化RF、SVM的參數(shù)搜索空間同YYPO-RF-SVM模型。
基于上述分析,構(gòu)建5輸入1輸出的年徑流預(yù)測(cè)模型(對(duì)SVM輸入數(shù)據(jù)需進(jìn)行[0,1]歸一化處理,RF輸入數(shù)據(jù)無需處理)。選取平均相對(duì)誤差絕對(duì)值MRE、最大相對(duì)誤差絕對(duì)值MaxRE和確定性系數(shù)DC作為評(píng)價(jià)指標(biāo),利用YYPO-RF-SVM、YYPO-RF、YYPO-SVM、RF、SVM模型對(duì)實(shí)例年徑流進(jìn)行預(yù)測(cè),見表2。繪制訓(xùn)練—檢驗(yàn)—預(yù)測(cè)的相對(duì)誤差及徑流效果,見圖1、2。
利用YYPO算法對(duì)RF-SVM組合模型關(guān)鍵參數(shù)和權(quán)重系數(shù)進(jìn)行優(yōu)化,結(jié)果為:決策樹數(shù)量ntree=17.171 0,分裂屬性個(gè)數(shù)mtry=3.863 2,懲罰因子C=24.8616、核函數(shù)參數(shù)g=2-5.6558、不敏感系數(shù)ε=2-6.3376、權(quán)重系數(shù)ωRF=0.301 0。依據(jù)表1、2及圖1、2可以得出以下結(jié)論。
a) YYPO-RF-SVM模型對(duì)實(shí)例訓(xùn)練、檢驗(yàn)和預(yù)測(cè)樣本的MRE分別為2.76%、4.64%和3.02%,精度高于YYPO-SVM、YYPO-RF模型,遠(yuǎn)高于RF、SVM模型,表明本文提出的YYPO-RF-SVM模型具有更高的預(yù)測(cè)精度和泛化能力,不但可作為徑流預(yù)測(cè)的有效工具,而且可為相關(guān)預(yù)測(cè)研究提供參考。
表2 年徑流訓(xùn)練—檢驗(yàn)—預(yù)測(cè)結(jié)果及其比較
注:加粗內(nèi)容為最優(yōu)預(yù)測(cè)指標(biāo)值
圖1 實(shí)例年徑流訓(xùn)練—檢驗(yàn)—預(yù)測(cè)相對(duì)誤差效果
圖2 實(shí)例年徑流訓(xùn)練—檢驗(yàn)—預(yù)測(cè)效果
b) 從YYPO算法優(yōu)化RF-SVM模型獲得的權(quán)重系數(shù)ωRF=0.301 0來看,SVM模型單元占主導(dǎo)地位;但從YYPO-RF-SVM模型較好的擬合、預(yù)測(cè)效果來看,RF、SVM模型單元具有較好的互補(bǔ)性,預(yù)測(cè)模型能夠有效綜合RF、SVM模型單元優(yōu)點(diǎn)而克服二者在應(yīng)用上的不足,從而提高YYPO-RF-SVM模型的預(yù)測(cè)精度和泛化能力。
c) 從MaxRE和DC評(píng)價(jià)指標(biāo)來看,除SVM模型擬合訓(xùn)練樣本的MaxRE略優(yōu)于YYPO-RF-SVM模型外,其他無論是檢驗(yàn)樣本、預(yù)測(cè)樣本還是序列DC,YYPO-RF-SVM模型均優(yōu)于其他4種模型,再次驗(yàn)證了YYPO-RF-SVM模型較好的擬合、預(yù)測(cè)效果。
d) 從同一模型對(duì)實(shí)例訓(xùn)練、檢驗(yàn)和預(yù)測(cè)的MRE和圖1、2來看,RF、SVM模型訓(xùn)練樣本的精度遠(yuǎn)優(yōu)于檢驗(yàn)樣本和預(yù)測(cè)樣本,呈“過擬合”特征,表明利用人工試湊的方法很難獲得理想的RF、SVM模型參數(shù),從而難以獲得好的預(yù)測(cè)精度。
a) 基于陰陽(yáng)對(duì)(YYPO)算法、隨機(jī)森林(RF)和支持向量機(jī)(SVM)三者優(yōu)點(diǎn),提出YYPO-RF-SVM預(yù)測(cè)模型及方法。本文提出的模型及方法可為水文預(yù)測(cè)預(yù)報(bào)及相關(guān)預(yù)測(cè)研究提供參考和借鑒。
b) 通過云南省某水文站年徑流預(yù)測(cè)實(shí)例對(duì)YYPO-RF-SVM模型的驗(yàn)證,并與YYPO-RF、YYPO-SVM模型及RF、SVM模型的預(yù)測(cè)結(jié)果作對(duì)比。結(jié)果表明,YYPO-RF-SVM模型具有較好的預(yù)測(cè)精度和泛化能力,能夠有效綜合RF、SVM模型單元優(yōu)點(diǎn),克服各自在應(yīng)用上的不足,將其用于徑流預(yù)測(cè)是可行的,是提高徑流預(yù)測(cè)精度的有效方法。