孫龍飛,郭秀吉,王 婷,顏小飛,王子路,王遠見
(1.黃河水利委員會 黃河水利科學研究院,河南 鄭州 450003;2.水利部黃河下游河道與河口治理重點實驗室,河南 鄭州 450003)
水少沙多、水沙關系不平衡是黃河的典型特征,為更好地處理黃河泥沙問題,需利用小浪底水庫開展調水調沙,2002 年以來的調水調沙實踐對發(fā)揮水庫綜合效益、減輕下游河道淤積、恢復河槽行洪輸沙能力等產生了重要作用[1-2]。 目前,針對小浪底水庫調水調沙,眾多學者在異重流排沙理論和技術[3-5]、水沙運動模擬[6-7]、黃河下游河道河床演變[8-9]等方面進行了大量研究,取得了豐富的理論成果。 然而,對于出庫泥沙不同組分的估算研究卻較少,實際上,黃河下游的沖淤受流量與含沙量匹配條件、泥沙組分特性影響,為了有效控制黃河下游的淤積,小浪底出庫水沙搭配應在一定的范圍之內[10-12]。 因此,系統(tǒng)地掌握水庫出庫泥沙組分特性,對于減輕黃河下游淤積、充分發(fā)揮調水調沙作用具有重要意義。 此外,影響水庫出庫泥沙組分特性的因素較多,為綜合考慮不同因素的影響效果,并解決高維度、非線性關系建立的難題,本文結合機器學習算法建立眾多因素與出庫泥沙各組分的關系模型,實現(xiàn)出庫泥沙組分的準確估算,以期為小浪底水庫的科學調度,以及調水調沙的運用方式和方案優(yōu)化提供技術支撐。
通過機器學習算法進行水庫出庫泥沙組分特性估算的數(shù)據分析和模型建立,本文首先給出所采用的3種機器學習算法的基本原理;接著,確定水庫出庫泥沙組分特性的輸入、輸出變量,并分別建立水庫出庫泥沙各組分(粗沙、細沙和中沙)估算模型;然后,提出基于不同機器學習算法的水庫出庫泥沙組分估算基本流程;最后,通過小浪底水庫實例分析,對比不同算法模型的估算準確性,進而優(yōu)選水庫出庫泥沙組分估算模型。
1.1.1 KNN 算法
K 最鄰近(K Nearest Neighbor,KNN)算法是進行數(shù)據挖掘的一種成熟算法,可以應用于分類、回歸和搜索等。 所謂K 最鄰近,就是指每個樣本數(shù)據都可以用與它最接近的K個鄰居代表。 KNN 算法的基本原理是將當前新數(shù)據的每個特征與具有相似特征的樣本數(shù)據進行對比匹配,然后以樣本數(shù)據中最相似的K個數(shù)據的屬性值作為輸出結果[13-14]。 其中,樣本之間的相似性通過距離衡量,距離的計算公式如下:
式中:xi為樣本X的第i個特征;yi為樣本Y的第i個特征;p值代表距離計算方式,其值不同,采用的距離計算方法不同。
1.1.2 XGBoost 算法
極限梯度提升( eXtreme Gradient Boosting,XGBoost)算法是優(yōu)化后的分布式梯度提升樹模型,其通過特征分裂來生成不同的樹模型,并依靠不斷地增加決策樹至模型中來減小結果誤差,同時在目標函數(shù)中引入正則項以約束損失函數(shù)值的下降和模型的復雜度,防止模型過擬合[15-16]。 XGBoost 算法的目標函數(shù)如下:
式中:yi為樣本真實值;為樣本的預測值;l(yi,)為反映yi與兩者差異的損失函數(shù);n為樣本數(shù);Ω(fj) 為正則項,用于控制模型復雜度,避免過擬合;fj為第j個樹的模型;m為分類回歸樹個數(shù)。
通過在正則化函數(shù)中添加懲罰項來控制模型訓練中的過擬合問題,正則項定義為
式中:T為葉子節(jié)點總數(shù);wj為葉子j的權重;γ和λ為模型懲罰系數(shù)。
1.1.3 GPR 算法
高斯過程回歸(Gaussion Process Regression,GPR)方法是一種非線性的、基于貝葉斯思想的無參推斷方法,可以通過適當?shù)母咚惯^程組合來進行建模,從函數(shù)空間的角度分析,高斯過程可以看作函數(shù)的分布是從有限維度空間到無限維的推廣[17-18]。 對于GPR 算法,其一般模型的形式為
式中:εi為獨立的高斯白噪聲,一般可假設其均值為0,方差用σ2表示,即可記作εi~N(0,σ2n) 。
根據貝葉斯原理,高斯過程先利用訓練數(shù)據學習建立先驗分布,然后在進入測試階段時轉變?yōu)楹篁灧植?,因此訓練?shù)據的輸出變量y與測試數(shù)據的輸出變量y?之間的聯(lián)合先驗分布為
式中:K(X,X) 為n × n階對稱正定的協(xié)方差矩陣;k(x?,x?) 為x?自身的協(xié)方差;K(x?,X) =KT(X,x?) 為n ×1 階協(xié)方差矩陣;In為n維單位矩陣。
由此可以得到高斯過程回歸方程:
式中:?為y?的均值;cov(y?) 為y?的方差。
水庫出庫泥沙組分受入庫流量、入庫含沙量、入庫泥沙粒徑、出庫流量、壩前水位等因素影響,本研究考慮的水庫出庫泥沙組分影響因子(輸入變量)包括入庫流量Q1、入庫含沙量S1、入庫細沙(粒徑在0.025 mm以下)百分比Ps0、入庫粗沙(粒徑在0.050 mm 以上)百分比Pc0、出庫流量Q2、出庫含沙量S2、壩前水位ZW,分別以出庫粗沙百分比Pc、出庫細沙百分比Ps作為輸出變量,建立各影響因素與水庫出庫泥沙粗沙和細沙百分比的綜合估算模型,再根據估算結果計算出庫中沙百分比Pm,所建立模型的表達式如下:
(1)選擇合適的樣本數(shù)據,并對數(shù)據進行歸一化預處理,以消除不同變量之間量綱差異所帶來的影響,歸一化公式為
式中:ω′為歸一化后數(shù)據;ω為原始數(shù)據;為原始數(shù)據平均值;σ為原始數(shù)據標準差。
(2)按照一定的分配比例對數(shù)據進行分割,確定訓練樣本和預測樣本,其中輸入、輸出變量分別見式(9)和式(10)。
(3)將訓練樣本分別代入3 種不同機器學習算法中進行訓練,建立水庫出庫泥沙各組分估算模型。
(4)將測試數(shù)據的輸入變量分別代入模型進行計算,得到出庫粗沙百分比和出庫細沙百分比,然后通過式(11)計算得到出庫中沙百分比。
(5)以估算的出庫粗沙、細沙和中沙百分比,與實際出庫泥沙組分作比較,以評估不同模型估算精度,這里將平均絕對誤差EMAE、均方根誤差ERMSE以及決定系數(shù)R2作為模型估算精度的評估指標,其計算公式如下:
式中:n為測試數(shù)據樣本數(shù);P′為估算的出庫泥沙組分百分比;P0為實際出庫泥沙組分百分比;P-為實際出庫泥沙組分百分比的平均值。
(6)分析比較各模型的評估指標差異,進而優(yōu)選機器學習算法及對應的水庫出庫泥沙組分估算模型。
小浪底水庫大壩位于河南省洛陽市以北40 km 的黃河干流上,其控制流域面積69.4 萬km2,占黃河流域面積的92.3%,控制黃河流域近100%的泥沙。 庫區(qū)原始庫容126.5 億m3,其中防洪庫容約40.5 億m3,攔沙庫容約75.5 億m3,可以長期保持有效庫容51 億m3,是黃河干流三門峽水庫以下唯一能夠取得較大庫容的控制性工程。 小浪底與三門峽、陸渾、故縣等干支流水庫聯(lián)合運用,可以在一定時期很大程度上緩解黃河下游洪水威脅、泥沙淤積、供水矛盾等問題。
小浪底庫區(qū)為峽谷型,平面形態(tài)上窄下寬。 根據河道平面形態(tài)的不同,將庫區(qū)劃分為上、下兩段。 上段自三門峽水文站至板澗河口,長約62.4 km,河谷底寬200~400 m。 下段自板澗河口至小浪底攔河壩,長約61 km,河谷底寬800~1 400 m,其中距壩25~29 km 之間的八里胡同庫段河谷底寬僅200~300 m。
本文以小浪底水庫2002—2019 年調水調沙期水沙系列數(shù)據為例進行分析,按照訓練數(shù)據∶測試數(shù)據=8 ∶2 的分配比例,將原始數(shù)據中170 個樣本數(shù)據用于訓練、43 個樣本數(shù)據用于測試估算。
2.2.1 出庫泥沙各組分估算值與實際值相關性
不同機器學習算法模型估算的出庫泥沙各組分(粗沙、細沙和中沙)與實際出庫各組分(粗沙、細沙和中沙)之間的相關性如圖1~圖3 所示。
由圖1~圖3 可見,整體上,不同出庫泥沙組分估算模型所得的估算值與實際值之間均滿足線性關系,各模型的決定系數(shù)R2介于0.83 ~0.91 之間,反映出各模型所得估算值與實際值的相關性良好,表明了通過機器學習的方法實現(xiàn)綜合考慮不同影響因素的出庫泥沙組分估算的有效性。
此外,針對出庫粗沙百分比估算,GPR 算法的決定系數(shù)R2高于XGBoost 算法。 但在出庫細沙和中沙百分比估算方面,XGBoost 算法則優(yōu)于GPR 算法,表明不同的數(shù)據關系條件下,不同機器學習算法的適用效果有所不同。 同時,相比于另外兩種算法,KNN 算法在出庫泥沙組分估算方面表現(xiàn)出其優(yōu)越性,無論是粗沙、細沙還是中沙估算,其模型的決定系數(shù)R2均最大。
2.2.2 出庫泥沙各組分誤差分布統(tǒng)計
為分析不同模型估算的具體誤差,統(tǒng)計各模型估算值與實際值之間的誤差分布,如圖4~圖6 所示。
由圖4~圖6 可見,不同模型估算結果的誤差值分布各不相同,相比之下,在不同出庫泥沙組分估算方面,3 種算法中KNN 算法的估算結果處于最小誤差范圍的樣本數(shù)量均更多,且隨著誤差值增大,其樣本數(shù)量呈遞減趨勢,表明KNN 算法的估算結果更集中于誤差較小范圍,其估算的準確性相對更高。
2.2.3 不同估算模型評估指標統(tǒng)計
為從整體上評價各模型的估算效果,進一步統(tǒng)計不同模型估算值與實際值間的平均絕對誤差EMAE、均方根誤差ERMSE以及決定系數(shù)R2,結果見表1。
表1 不同機器學習算法模型評估指標統(tǒng)計
由表1 可見,整體上,各模型估算值與實際值之間的EMAE和ERMSE均較小,表明應用機器學習算法進行出庫泥沙組分估算是有效的,其中KNN 算法模型的EMAE以及ERMSE均最小,且其決定系數(shù)R2最大,表明在現(xiàn)有數(shù)據條件下,利用KNN 算法能夠更好地實現(xiàn)水庫出庫泥沙組分的準確估算。
為了掌握小浪底水庫出庫泥沙組分特性,利用2002—2019 年調水調沙期水沙系列數(shù)據,分別采用3種不同的機器學習算法,建立了包括入庫流量、入庫含沙量、入庫細沙百分比、入庫粗沙百分比、出庫流量、出庫含沙量、壩前水位在內的不同影響因子的水庫出庫泥沙各組分估算模型。 實例分析結果表明,不同模型所得估算值與實際值之間成良好線性關系,各模型決定系數(shù)R2介于0.83 ~0.91 之間,表明了通過機器學習的方法實現(xiàn)綜合考慮不同影響因素的出庫泥沙組分估算的有效性。 在現(xiàn)有數(shù)據條件下,KNN 算法所建立模型的評估指標均最好,表明相對于其余兩種算法,KNN算法在出庫泥沙組分估算方面的準確性和精度更高。本文所提出方法可以為實現(xiàn)水庫出庫泥沙組分的準確估算提供新的途徑。