调水调沙期小浪底水库出库泥沙组分估算研究
2022-08-09孙龙飞郭秀吉颜小飞王子路王远见
孙龙飞,郭秀吉,王 婷,颜小飞,王子路,王远见
(1.黄河水利委员会 黄河水利科学研究院,河南 郑州 450003;2.水利部黄河下游河道与河口治理重点实验室,河南 郑州 450003)
水少沙多、水沙关系不平衡是黄河的典型特征,为更好地处理黄河泥沙问题,需利用小浪底水库开展调水调沙,2002 年以来的调水调沙实践对发挥水库综合效益、减轻下游河道淤积、恢复河槽行洪输沙能力等产生了重要作用[1-2]。 目前,针对小浪底水库调水调沙,众多学者在异重流排沙理论和技术[3-5]、水沙运动模拟[6-7]、黄河下游河道河床演变[8-9]等方面进行了大量研究,取得了丰富的理论成果。 然而,对于出库泥沙不同组分的估算研究却较少,实际上,黄河下游的冲淤受流量与含沙量匹配条件、泥沙组分特性影响,为了有效控制黄河下游的淤积,小浪底出库水沙搭配应在一定的范围之内[10-12]。 因此,系统地掌握水库出库泥沙组分特性,对于减轻黄河下游淤积、充分发挥调水调沙作用具有重要意义。 此外,影响水库出库泥沙组分特性的因素较多,为综合考虑不同因素的影响效果,并解决高维度、非线性关系建立的难题,本文结合机器学习算法建立众多因素与出库泥沙各组分的关系模型,实现出库泥沙组分的准确估算,以期为小浪底水库的科学调度,以及调水调沙的运用方式和方案优化提供技术支撑。
1 研究方法
通过机器学习算法进行水库出库泥沙组分特性估算的数据分析和模型建立,本文首先给出所采用的3种机器学习算法的基本原理;接着,确定水库出库泥沙组分特性的输入、输出变量,并分别建立水库出库泥沙各组分(粗沙、细沙和中沙)估算模型;然后,提出基于不同机器学习算法的水库出库泥沙组分估算基本流程;最后,通过小浪底水库实例分析,对比不同算法模型的估算准确性,进而优选水库出库泥沙组分估算模型。
1.1 机器学习算法基本原理
1.1.1 KNN 算法
K 最邻近(K Nearest Neighbor,KNN)算法是进行数据挖掘的一种成熟算法,可以应用于分类、回归和搜索等。 所谓K 最邻近,就是指每个样本数据都可以用与它最接近的K个邻居代表。 KNN 算法的基本原理是将当前新数据的每个特征与具有相似特征的样本数据进行对比匹配,然后以样本数据中最相似的K个数据的属性值作为输出结果[13-14]。 其中,样本之间的相似性通过距离衡量,距离的计算公式如下:
式中:xi为样本X的第i个特征;yi为样本Y的第i个特征;p值代表距离计算方式,其值不同,采用的距离计算方法不同。
1.1.2 XGBoost 算法
极限梯度提升( eXtreme Gradient Boosting,XGBoost)算法是优化后的分布式梯度提升树模型,其通过特征分裂来生成不同的树模型,并依靠不断地增加决策树至模型中来减小结果误差,同时在目标函数中引入正则项以约束损失函数值的下降和模型的复杂度,防止模型过拟合[15-16]。 XGBoost 算法的目标函数如下:
式中:yi为样本真实值;为样本的预测值;l(yi,)为反映yi与两者差异的损失函数;n为样本数;Ω(fj) 为正则项,用于控制模型复杂度,避免过拟合;fj为第j个树的模型;m为分类回归树个数。
通过在正则化函数中添加惩罚项来控制模型训练中的过拟合问题,正则项定义为
式中:T为叶子节点总数;wj为叶子j的权重;γ和λ为模型惩罚系数。
1.1.3 GPR 算法
高斯过程回归(Gaussion Process Regression,GPR)方法是一种非线性的、基于贝叶斯思想的无参推断方法,可以通过适当的高斯过程组合来进行建模,从函数空间的角度分析,高斯过程可以看作函数的分布是从有限维度空间到无限维的推广[17-18]。 对于GPR 算法,其一般模型的形式为
式中:εi为独立的高斯白噪声,一般可假设其均值为0,方差用σ2表示,即可记作εi~N(0,σ2n) 。
根据贝叶斯原理,高斯过程先利用训练数据学习建立先验分布,然后在进入测试阶段时转变为后验分布,因此训练数据的输出变量y与测试数据的输出变量y∗之间的联合先验分布为
式中:K(X,X) 为n × n阶对称正定的协方差矩阵;k(x∗,x∗) 为x∗自身的协方差;K(x∗,X) =KT(X,x∗) 为n ×1 阶协方差矩阵;In为n维单位矩阵。
由此可以得到高斯过程回归方程:
式中:∗为y∗的均值;cov(y∗) 为y∗的方差。
1.2 水库出库泥沙组分估算模型
水库出库泥沙组分受入库流量、入库含沙量、入库泥沙粒径、出库流量、坝前水位等因素影响,本研究考虑的水库出库泥沙组分影响因子(输入变量)包括入库流量Q1、入库含沙量S1、入库细沙(粒径在0.025 mm以下)百分比Ps0、入库粗沙(粒径在0.050 mm 以上)百分比Pc0、出库流量Q2、出库含沙量S2、坝前水位ZW,分别以出库粗沙百分比Pc、出库细沙百分比Ps作为输出变量,建立各影响因素与水库出库泥沙粗沙和细沙百分比的综合估算模型,再根据估算结果计算出库中沙百分比Pm,所建立模型的表达式如下:
1.3 水库出库泥沙组分估算基本方法步骤
(1)选择合适的样本数据,并对数据进行归一化预处理,以消除不同变量之间量纲差异所带来的影响,归一化公式为
式中:ω′为归一化后数据;ω为原始数据;为原始数据平均值;σ为原始数据标准差。
(2)按照一定的分配比例对数据进行分割,确定训练样本和预测样本,其中输入、输出变量分别见式(9)和式(10)。
(3)将训练样本分别代入3 种不同机器学习算法中进行训练,建立水库出库泥沙各组分估算模型。
(4)将测试数据的输入变量分别代入模型进行计算,得到出库粗沙百分比和出库细沙百分比,然后通过式(11)计算得到出库中沙百分比。
(5)以估算的出库粗沙、细沙和中沙百分比,与实际出库泥沙组分作比较,以评估不同模型估算精度,这里将平均绝对误差EMAE、均方根误差ERMSE以及决定系数R2作为模型估算精度的评估指标,其计算公式如下:
式中:n为测试数据样本数;P′为估算的出库泥沙组分百分比;P0为实际出库泥沙组分百分比;P-为实际出库泥沙组分百分比的平均值。
(6)分析比较各模型的评估指标差异,进而优选机器学习算法及对应的水库出库泥沙组分估算模型。
2 实例分析
2.1 研究对象及数据处理
小浪底水库大坝位于河南省洛阳市以北40 km 的黄河干流上,其控制流域面积69.4 万km2,占黄河流域面积的92.3%,控制黄河流域近100%的泥沙。 库区原始库容126.5 亿m3,其中防洪库容约40.5 亿m3,拦沙库容约75.5 亿m3,可以长期保持有效库容51 亿m3,是黄河干流三门峡水库以下唯一能够取得较大库容的控制性工程。 小浪底与三门峡、陆浑、故县等干支流水库联合运用,可以在一定时期很大程度上缓解黄河下游洪水威胁、泥沙淤积、供水矛盾等问题。
小浪底库区为峡谷型,平面形态上窄下宽。 根据河道平面形态的不同,将库区划分为上、下两段。 上段自三门峡水文站至板涧河口,长约62.4 km,河谷底宽200~400 m。 下段自板涧河口至小浪底拦河坝,长约61 km,河谷底宽800~1 400 m,其中距坝25~29 km 之间的八里胡同库段河谷底宽仅200~300 m。
本文以小浪底水库2002—2019 年调水调沙期水沙系列数据为例进行分析,按照训练数据∶测试数据=8 ∶2 的分配比例,将原始数据中170 个样本数据用于训练、43 个样本数据用于测试估算。
2.2 水库出库泥沙组分估算结果分析
2.2.1 出库泥沙各组分估算值与实际值相关性
不同机器学习算法模型估算的出库泥沙各组分(粗沙、细沙和中沙)与实际出库各组分(粗沙、细沙和中沙)之间的相关性如图1~图3 所示。
由图1~图3 可见,整体上,不同出库泥沙组分估算模型所得的估算值与实际值之间均满足线性关系,各模型的决定系数R2介于0.83 ~0.91 之间,反映出各模型所得估算值与实际值的相关性良好,表明了通过机器学习的方法实现综合考虑不同影响因素的出库泥沙组分估算的有效性。
此外,针对出库粗沙百分比估算,GPR 算法的决定系数R2高于XGBoost 算法。 但在出库细沙和中沙百分比估算方面,XGBoost 算法则优于GPR 算法,表明不同的数据关系条件下,不同机器学习算法的适用效果有所不同。 同时,相比于另外两种算法,KNN 算法在出库泥沙组分估算方面表现出其优越性,无论是粗沙、细沙还是中沙估算,其模型的决定系数R2均最大。
2.2.2 出库泥沙各组分误差分布统计
为分析不同模型估算的具体误差,统计各模型估算值与实际值之间的误差分布,如图4~图6 所示。
由图4~图6 可见,不同模型估算结果的误差值分布各不相同,相比之下,在不同出库泥沙组分估算方面,3 种算法中KNN 算法的估算结果处于最小误差范围的样本数量均更多,且随着误差值增大,其样本数量呈递减趋势,表明KNN 算法的估算结果更集中于误差较小范围,其估算的准确性相对更高。
2.2.3 不同估算模型评估指标统计
为从整体上评价各模型的估算效果,进一步统计不同模型估算值与实际值间的平均绝对误差EMAE、均方根误差ERMSE以及决定系数R2,结果见表1。
表1 不同机器学习算法模型评估指标统计
由表1 可见,整体上,各模型估算值与实际值之间的EMAE和ERMSE均较小,表明应用机器学习算法进行出库泥沙组分估算是有效的,其中KNN 算法模型的EMAE以及ERMSE均最小,且其决定系数R2最大,表明在现有数据条件下,利用KNN 算法能够更好地实现水库出库泥沙组分的准确估算。
3 结 论
为了掌握小浪底水库出库泥沙组分特性,利用2002—2019 年调水调沙期水沙系列数据,分别采用3种不同的机器学习算法,建立了包括入库流量、入库含沙量、入库细沙百分比、入库粗沙百分比、出库流量、出库含沙量、坝前水位在内的不同影响因子的水库出库泥沙各组分估算模型。 实例分析结果表明,不同模型所得估算值与实际值之间成良好线性关系,各模型决定系数R2介于0.83 ~0.91 之间,表明了通过机器学习的方法实现综合考虑不同影响因素的出库泥沙组分估算的有效性。 在现有数据条件下,KNN 算法所建立模型的评估指标均最好,表明相对于其余两种算法,KNN算法在出库泥沙组分估算方面的准确性和精度更高。本文所提出方法可以为实现水库出库泥沙组分的准确估算提供新的途径。