基于Boosting算法和支持向量機的洪水預報方法
【技術領域】
[0001] 本發(fā)明涉及洪水預報技術,尤其是一種基于Boosting算法和支持向量機的洪水 預報方法。
【背景技術】
[0002] 洪水預報工作是防災減災最重要的非工程項目,在歷年的防汛抗旱、水資源管理 與保護、水工程運行管理等工作中發(fā)揮了重要的作用,取得了顯著的經濟效益和社會效益。 但洪水過程受流域自然地理、水文、氣象、人類活動等諸多因素的影響,具有高度的復雜性 和不確定。因此準確地預報水雨情以便生成調度方案是一個急需要解決的難題。
[0003] 現有洪水預報方法主要分為兩類:一種是基于過程驅動模型,另一種是基于數據 驅動模型。前者過程驅動模型是指以水文學概念為基礎,對徑流的產流過程與河道演進過 程進行模擬,從而進行流量過程預報的模型。其缺點是由于徑流過程受太陽輻射、地心引 力、下墊面和人類活動等因素影響,過程預報往往比較困難,而且過分依賴預報人員的經 驗。
[0004] 在現有文獻中,數據驅動模型則基本不考慮水文過程的物理機制,而以建立輸入 輸出數據之間的最優(yōu)數學映射關系為目標。故其存在過度依賴訓練數據質量和數量,模型 結構復雜,且易陷入局部極值等問題,
[0005] 因此,需要發(fā)明新的模型來克服上述缺陷。
【發(fā)明內容】
[0006] 發(fā)明目的:一個目的是提供一種基于Boosting算法和支持向量機的洪水預報方 法,以解決現有技術存在的部分問題。
[0007] 技術方案:一種基于Boosting算法和支持向量機的洪水預報方法,包括如下步 驟:
[0008] 步驟L運用相關系數法確定預報因子;
[0009] 步驟2.利用核主成分分析對所述預報因子進行降維處理;
[0010] 步驟3.利用Boosting算法選取樣本建立多個支持向量機預測模型,引入損失函 數和相關系數調整樣本權重,最后組合為一個總預測模型;
[0011] 步驟4.利用所述總預測模型對測試樣本進行預測。
[0012] 優(yōu)選的,所述步驟1進一步為:
[0013] 步驟11.選取候選預報因子;
[0014] 步驟12.分別計算出各候選預報因子與待預測時刻的實測值的相關系數;
[0015] 步驟13.將相關系數降序排列,選取相關系數大于閾值的候選預報因子作為影響 因子。
[0016] 優(yōu)選的,相關系數的計算公式為: CN 105139093 A 說明書 2/7 頁
[0017]
[0018] 式中,ft(x)為第t個預報因子,ft(Xl)為第t個預報因子中第i個樣本值的大小, /(Λ·)為第t個預報因子的均值,Y(X 1)為第i個樣本的實測值大小,Y(X)為實測值均值,t 為自然數。
[0019] 優(yōu)選的,所述步驟2進一步為:
[0020] 步驟21.數據標準化處理,將每個輸入因子對應數據歸一化到[-1,1]之間;
[0021] 步驟22.求核矩陣K,通過核函數將輸入數據由數據空間映射到特征空間,所述核 函數為:
[0022]
[0023] 式中,X1為第i個樣本的所有列,X j為第j個樣本的所有列,a為方差系數;
[0024] 步驟23.將核矩陣K中心化,以修正核矩陣,得到中心化的核矩陣K。;
[0025] Kc= K-I NK-K1N+1NK1N
[0026] 式中,InSNXN的矩陣,每一個元素都為1/N;
[0027] 步驟24.計算核矩陣K。的特征值λ …,λ n和特征向量Vl,…,vn;將特征值降序 排列并相應調整特征向量的順序,η為自然數;
[0028] 步驟25.通過施密特正交化方法,正交化并單位化特征向量;
[0029] 步驟26.計算各特征值的累計貢獻率Γι,…,rn,根據給定的貢獻率閾值ρ,如果某 特征值的累計貢獻率r t>貢獻率閾值p,則選取前t個主分量,作為降維后的數據,其中t為 自然數。
[0030] 優(yōu)選的,所述步驟3進一步為:
[0031] 設輸入的水文時間序列為(Xyy1),其中i = 1,2,···,]!,X1為影響因子,y i為實際 值,將水文時間序列樣本分為訓練樣本和測試樣本,需要訓練的子模型個數為T,Dt (i)為不 同分量模型選取樣時樣本的權重概率分布,t = 1,2,…,T ;
[0032] 步驟31.初始化,分量模型t = 1,各樣本概率分布Dt(i) = 1/n,i = 1,2,…,η ;
[0033] 步驟32.訓練模型,根據樣本概率分布Dt(i)對訓練樣本進行采樣并訓練支持向 量機模型,對測試樣本進行預測,同時對訓練樣本進行預測,以調整訓練樣本權重;
[0034] 步驟33.計算各訓練樣本的相對誤差損失函數:
[0035]
[0036] 其中,ft (Xi)為第t輪Boosting的預測值,y (Xi)為第t輪Boosting的實際值;
[0037] 步驟34.計算各訓練樣本相關系數:
[0038]
[0039] 式中,/:(X)為第t輪Boosting的預測值的均值,為第t輪Boosting實際值 的均值;
[0040] 步驟35.通過損失函數和相關系數更新樣本概率分布:
[0041 ]
[0042] 式中,Z1S歸一化系數;
[0043] 步驟36 :如果t小于子模型個數T,轉到步驟32,否則轉到步驟37 ;
[0044] 步驟37 :組合各分量模型,得到總模型:
[0045]
[0046] 式中,P t(ft (X),y)為第t輪Boosting的相關系數,ft (X)為第t輪Boosting的 預測值。
[0047] 本發(fā)明前兩個步驟是數據預處理,目的是提取洪水數據中的有用信息,消除冗余 信息對預報造成的干擾;第三個步驟將Boosting算法引入到洪水預報中,盡量將前一個模 型不能很好學習的樣本,抽取出來用于訓練下一個模型,這樣組合后的模型可以有效提高 洪水預報準確率;最后一個步驟用于檢驗模型效果。
[0048] 有益效果:本發(fā)明建立了具有增強學習能力的支持向量機模型,可以通過樣本多 重采樣的增強學習來提高預測的準確率,解決了現有技術存在的過分依賴預報人員經驗, 模型復雜,以及對數據要求比較嚴格的問題。
【附圖說明】
[0049] 圖1為增強學習洪水預報模型結構框圖。
[0050] 圖2為本發(fā)明步驟3的流程圖。
【具體實施方式】
[0051] 結合圖1描述本發(fā)明的技術細節(jié)。在本發(fā)明中,將Boosting算法引入到洪水預報 中,提出了具有增強學習能力的洪水預報模型,該方法主要包括以下三個步驟:
[0052] -是運用相關系數法進行預報因子的確定;二是利用核主成分分析(KPCA)對預 報因子進行降維;三是利用Boosting算法選取部分樣本建立多個支持向量機預測模型,其 中引入損失函數和相關系數調整樣本權重,最后組合為一個總的預測模型;
[0053] 以下詳細描述各步驟的具體實現過程:
[0054] 步驟一、預報因子的確定
[0055] 具體包括如下步驟:
[0056] 步驟11、選取上游干、支流的前期實測徑流量以及區(qū)間雨量等多個輸入作為候選 預報因子(例如選取某壩上游班臺、息縣、潢川的前期實測徑流量,以及區(qū)間雨量),其中 ft (X)為第t個預報因子。
[0057] 步驟12、分別求出各候選預報因子與待預測時刻的實測值的相關系數Γι,…,r t, 相關系數公式為: CN 105139093 A 仇 口月卞> 4/7 頁
[0058]
[0059] 其中ft (X1)為第t個預報因子中第i個樣本值的大小,萬⑴為第t個預報因子的 均值,y (X1)為第i個樣本的實測值大小,為實測值均值。
[0060] 步驟13、按照相關系數從大到小排序,然后選擇前k個相關系數較大的作為預報 因子,k為自然數。在實際中,設定相關系數的閾值th(例如為0.4),如果相關系數大于該 閾值,則選擇其對應的候選預報因子作為影響因子。相關系數反應變量之間的相關程度,相 關系數越大說明了預報因子與真實值的相關性越大。
[0061] 數據驅動模型預報因子的選擇至關重要。如果輸入預報因子過多,則會帶來冗余 的信息,影響預測準確率;如果輸入的預報因子過少,則不足以揭示輸出變量的復雜變化機 理,從而得不到滿意的預測結果。在現實情況下,徑流量預報會受到上游各站流量,區(qū)間降 雨量,土壤濕度,下墊面等影響,考慮到水流從上游站點傳播到下游站點會有一定的延遲, 不同的站點預見期存在差異,同一個站點由于流量大小的不同預見期也會有差異。
[0062] 因此,需要選取多維數據作為輸入。由于維數的增加,勢必會引入冗余信息和噪 音,本發(fā)明采用相關系數法對冗余和噪音信息進行剔除,可以消除這些冗余和噪音信息對 預報準確率的影響。
[0063] 步驟二、核主成分分析(KPCA)降維
[0064] 具體包括如下步驟:
[0065] 步驟21.數據標準化處理,將每個輸入因子對應數據歸一化到[-1,1]之間;
[0066] 步驟22.求核矩陣K,使用核函數來實現將原始數據由數據空間映射到特征空間;
[0067] 采用的核函數為徑向基核函數,公式為:
[0068]
[0069] 式中,X1為第i個樣本的所有列,X j為第j個樣本的所有列,a為方差系數;
[0070] 步驟23.中心化核矩陣K。,用于修正核矩陣,公式為:
[0071] Kc= K-INK-K1N+1NK1N
[0072] 其中,InSNXN的矩陣,每一個元素都為1/N;
[0073] 步驟24.計算矩陣Kc的特征值λ …,λη,對應的特征向量為Vl,…,Vn。特征值 決定方差的大小,