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