APP下载

基于分段LassoLarsCV算法的水位预测研究

2021-07-20刘涛周曼胡挺纪国良

人民长江 2021年5期
关键词:三峡水库入库分段

刘涛 周曼 胡挺 纪国良

摘要:三峡水库蓄水以来,由于入库流量统计和地形资料测量等存在系统性误差,通过求解圣维南方程组计算的长寿站水位精度有时难以满足实际应用需求。对此,采用分段套索最小角回归交叉验证(Lasso Least angle regression Cross Validation,LassoLarsCV)算法预测长寿站水位。首先收集了2009~2019年相关水位和流量数据并进行标准化处理,然后根据坝前水位和入库流量对数据进行分类;最后针对每一个类别,从2009~2018年的数据中随机抽取80%用于训练线性模型,剩余20%数据用于检验并调整分段方案,以2019年的数据进行测试,采用LassoLarsCV算法模型求解。结果表明:采用LassoLarsl算法得到的长寿站水位误差可以控制在1.2 m以内,99.47%的水位误差在0.5 m以内,效果优于传统水动力学方法。LassoLarsCV可直接研究出、入库流量和坝前水位与长寿站水位的映射关系,降低了模型对输入数据准确性的要求,同时提高了长寿站水位的计算精度。

關 键 词:

水位预测; LassoLarsCV算法; 圣维南方程组; 线性模型; 水动力学; 三峡库区

中图法分类号: P332.3

文献标志码: A

DOI:10.16232/j.cnki.1001-4179.2021.05.010

1 研究背景

三峡水库蓄水以来,根据长期积累的研究成果和实践经验,发现长寿段是回水淹没的敏感区域。该区域长寿站水位是否超过土地征用线或移民迁移线,往往代表着库尾是否发生淹没,因此需要重点关注。在以往的研究中,多采用洪水演进模型计算长寿站水位。但是由于三峡水库覆盖地域广、河网复杂,模型的输入边界难以准确获取,长寿站水位的计算精度有时难以满足实际应用需求。因此,有必要进一步研究高精度的长寿站水位预测方法。

目前,已有许多研究致力于提高洪水演进模型的计算精度。长江科学院在计算三峡水库洪水传播过程中,一方面增加了水库断面测量点数量,降低了断面概化误差;另一方面不断提升入库流量的预报水平,并将更多支流加入到模型中。在糙率率定方面,杨世孝等[1]提出了一种反求糙率的方式;陈素红等[2]建立了基于多亲遗传算法的河道糙率率定模型;陈一帆等[3]以糙率和水力状态量作为河网非线性动态系统状态变量,采用扩展卡尔曼滤波构建了结合糙率动态校正的河网水情数据同化模型。这些研究已经取得了较大的进展,但它们仍然对边界输入条件的准确性有较高要求,对于三峡水库这类大型河网,基本上都存在2 m左右的误差,其在普适性和计算精度方面仍有待进一步提高。

由Robert Tibshirani提出的Lasso方法发展而来的套索最小角回归交叉验证(Lasso Least angle regression Cross Validation,LassoLarsCV)算法兼顾了计算速度的高效性和拟合结果的精确性,是目前应用最广泛的一种线性学习算法。因此本文尝试采用分段LassoLarsCV算法计算长寿站水位,该算法直接学习出、入库流量和坝前水位到长寿站水位的映射关系,只需要当前出、入库流量的统计误差与历史数据的误差保持在一定范围内即可,对数据准确性的要求较洪水演进模型低。

LassoLarsCV算法采用最小角回归(Least angle regression)法求解式(2) 并进行交叉验证。最小角回归法是一种快速进行特征选择和回归系数计算的迭代算法,其核心思想是将回归目标向量依次分解为若干组特征向量的线性组合,最终使得与所有特征均线性无关的残差向量最小[8]。具体来说,算法首先找到与因变量y相关度最高的xk(余弦距离最大),在已选择变量的solution path上前进直到有另一个变量xt,使得这两个变量的所有取值实例构成的特征向量Xk、Xt与当前残差的相关度是一样的。 然后重复这个过程,直到残差向量足够得小,或者说所有的变量都已经取完,算法停止。目前,最小角回归法在数据分析中十分流行,比如用于光谱分析模型的建立、结构地震需求重要性度量分析、全基因组选择等研究工作中[9-11]。

LassoLarsCV算法的建模和求解可以通过调用Python中sklearn包linear_model模块中的LassoLarsCV类进行[12]。

3 长寿站水位预测

影响长寿站水位的水文因素众多,以这些因素作为自变量,则长寿站水位是它们的复杂函数。理论上可通过对相关变量取值范围的逐渐细分,在每个局部采用线性回归模型拟合该复杂函数。在一个局部细分范围内,样本数量越充足、分布越均匀,LassoLarsCV算法求解得到的线性回归模型拟合预测的效果越好。

3.1 变量选择

根据水动力学圣维南方程组原理,在已知水库干、支流的入库流量和坝前水位变化过程条件下,可以计算出库区内所有断面的流量和水位过程[13]。在计算过程中,不同断面的流量和水位之间存在相互关联作用不是各自独立的。因此,在使用LassoLarsCV算法来研究长寿站水位的预测问题时,需要找到关键的影响因素。

三峡库区主要水文站点从上游到下游的顺序依次为朱沱站、北碚站、寸滩站、长寿站、武隆站、三峡水库中心站,其中朱沱站、寸滩站、长寿站、三峡水库中心站为干流站点,北碚站、武隆站为支流站点,具体如图1所示。因此从长寿站所处的位置来看,寸滩站水文信息可以比较全面反映来自长寿上游的朱沱站和北碚站(两个主要站点)的水文因素对长寿站水位的综合影响;同时,长寿站下游的武隆站和三峡水库中心站的相关水文信息反映了下游对长寿站水位的顶托效应。将上述理论分析结合实践,初步确定影响长寿站水位的重要因素为寸滩流量、武隆流量、三峡水库出库流量、三峡水库平滑流量(一种可以通过预报得到的入库流量)、凤凰山水位(由三峡水库中心站给出的坝前水位,位于凤凰山而得名)。

在具体的模型变量选择时,不仅要考虑提高长寿站水位预测精度,而且要考虑实际预报的能力。当前三峡水库入库流量预报的时间间隔为6 h,两个时间间隔之间的入库流量和水位均未知,插值法可能在一般情况下是适用的,但是在汛期大流量情况下,1 h内流量和水位变化剧烈,存在很大的不确定性。因此上述各因素的取值只能取6 h间隔。

在确定影响长寿站水位的主要影响因素以及取值时间间隔后,还需要选择每个因素数据的时段数。这里“时段数”是指在预测长寿站水位时,每个因素需要使用的时间点个数,例如当时段数为2时,假设要对t时刻长寿站水位进行预测,各主要影响因素的取值为t-6时刻和t时刻的值。考虑到既能反映水文过程又不造成变量冗余,选择两个时段是比较合适的。

综上所述,长寿站水位预测的分段LassoLarsCV算法的特征变量为t-6时刻以及t时刻的寸滩流量、武隆流量、三峡水库出库流量、三峡水库平滑流量、凤凰山水位,共计10个变量,标签为t时刻的实测长寿站水位。

3.2 数据处理

在长寿站水位预测问题中,存在流量和水位两种数值,它们之间量级相差较大。为了避免流量因子被LassoLarsCV算法错误地压缩掉,在将样本带入模型中进行计算时会先进行数据标准化的预处理,在这里采用的标准化处理方法具体为

标准化水位数据=原水位数据-原最低水位原最高水位-原最低水位

标准化流量数据=原流量数据-原最小流量原最大流量-原最小流量

根据三峡水库的运行和数据积累情况,选取2009年1月1日00:00至2019年11月18日23:00的数据进行拟合训练和预测。其中2009年1月1日00:00至2018年12月31日23:00共87 648条数据,形成的所有样本按照t时刻凤凰山水位和t时刻三峡水库平滑流量两个特征变量取值范围进行细分,细分的具体操作是将当前时刻凤凰山水位和三峡水库平滑流量两个特征变量分别从样本中各自最小值开始,以固定值Δz,Δq为间隔进行网格划分,滚动完成对所有样本的分类。然后在每个分类下随机抽取80%的样本数据用于学习训练,剩下20%用于验证,根据其预测效果反馈调整Δz,Δq。2019年1月1日00:00至2019年11月18日23:00共7 728条数据,全部用于测试模型的预测效果。

3.3 模型评价指标

为了合理评价通过训练得到的线性回归模型的性能,考虑通过以下3个指标进行量化展示。

3.4 结果分析

经过计算,找到了一个比较合适的分类间隔Δz=1 m,Δq=20 000 m3/s,即t时刻凤凰山水位每隔1 m且三峡水库平滑流量每隔20 000 m3/s一个分类。

3.4.1 拟合和预测效果

表1是分段LassoLarsCV算法得到的线性回归模型分别在训练集、验证集和测试集上对长寿站水位进行预测的误差区间统计情况,可以看出最大误差在1.20 m以内。经过计算,模型的平均绝对误差为0.10 m,均方误差为0.017 5,各个分段的决定系数均在0.88以上。2019年的测试结果显示:预测误差在[-0.81 m,0.74 m]区间范围內,在该年度最大来流(40 000~50 000 m3/s)期间预测误差控制在0.45 m以内,效果较好。

图2是2009~2019年长寿站水位拟合预测误差分布,表2是2009~2019年长寿站水位拟合预测误差绝对值分段统计。从11 a的情况来看,误差主要集中在±0.5 m以内。在所有的拟合预测结果中,误差绝对值小于0.5 m的数据比例高达99.47%,误差绝对值大于或者等于0.5 m的数据仅占比0.53%。

3.4.2 LassoLarsCV算法与传统水动力学法比较

在前面提到过传统水动力学法在计算长寿站水位时最大误差高达2 m,为了更加充分地说明这一点,在这一节将具体展示部分传统水动力学法计算结果与本文结果的比较。2012,2014年和2017年是长江流域典型洪水年,均出现过较大流量或者较高水位,因此有必要用这3 a数据将传统水动力学法和分段LassoLarsCV算法的结果与实测水位的结果进行对比,具体情况如图3~5中所示。从图3~5中不难看出,与本文采用的分段LassoLarsCV算法相比,传统水动力学法的误差分布范围较大一些,而且振荡较为剧烈、太不稳定,最大误差超过了2 m,效果存在一定差距。

3.4.3 零界点处误差分析

本节重点分析长寿站实际水位高于175.00 m(在土地征用线附近)时的预测效果。对历史数据进行统计分析,发现长寿站实际水位高于175.00 m主要有两种情况:① 在入库大流量(q>40 000 m3/s)时发生,主要集中在汛期附近;② 在凤凰山高水位(z>173.00 m)时发生,主要集中在蓄水期末期附近。下面分别就这两种情况进行说明。

2012年7月24日和2014年9月19日均是在入库流量较大时长寿站水位高于175.70 m(土地征用线高程),经过统计这两个时段的预测误差,可以得出以下结论:

在长寿站水位高于175.00 m时两时段最大误差分别为0.21 m和-0.07 m,最大误差发生的时间均在水位从高位下降的过程中,整体误差范围分别为[-0.08 m,0.21 m]和[-0.07 m,0.06 m]。因此,长寿站水位高于175.00 m时,水位预测整体误差都较小,当然这跟历史样本较少也有很大的关系,不足以说明用来预测超出历史范围的情况时也能有较好的效果。

预测结果在大多数时候存在滞后效应,即在长寿站实际水位上涨时的大多数情况下,预测的长寿站水位上涨相对较慢,误差呈现为负值;而在长寿站实际水位下降时的大多数情况下,预测的长寿站水位下降相对较慢,误差呈现为正值。这说明在长寿站水位上涨的过程中可以在预测值的基础上加上一个正值进行修正。

当凤凰山水位较高时,三峡水库平滑流量通常较低,在此种情况下,当长寿站水位超过175.70 m时,2011,2014年和2017年的预测误差最大值分为别-0.12,-0.37,-0.23 m,均在可接受范围内。

3.4.4 LassoLarsCV算法与深度学习方法、传统水动力学法的区别

与深度学习方法相比,分段LassoLarsCV算法原理更易理解、模型更直观、硬件要求低、训练速度快。一方面,因为深度学习方法需整体进行训练拟合,不同局部之间彼此联系、相互影响,而本文的方法由于需要分段使得不同局部之间彼此独立、缺乏联系,不能相互提供有效的信息,所以在样本稀少的区域,前者泛化预测效果较好,后者过拟合情况较为严重、泛化预测效果较差,而在超出历史范围较大的情况下两者均不具备有效的预测能力。另一方面,正因为深度学习方法是从全局出发考虑问题,会在局部做出让步以保持全局的拟合预测效果,所以在样本数量较为充足、分布较为均匀的局部情况下本文方法的拟合预测效果要比深度学习方法稍好一些。

与传统水动力学方法相比,分段LassoLarsCV算法充分挖掘利用了历史数据提供的信息,需要的数据源少,计算过程简便快捷。一方面,因为分段LassoLarsCV算法是从数据分析的角度处理问题,降低了对输入数据准确度的要求,只需要预测和训练时使用的数据属于同一来源即可,在历史样本数量较为充足的情况下预测精度明显提高。另一方面,在超出历史范围较大的情况下,不依赖于历史数据提供信息的传统水动力学方法又有其独特的优势,这一点是分段LassoLarsCV算法和深度学习方法都无法媲美的。

4 结 论

针对长寿站水位预测问题,本文使用分段LassoLarsCV算法在每一个局部用线性模型去拟合逼近真实情况。计算结果显示:最大误差可以控制在±1.2 m以内,精度达到96%,且99%的情况下可以将误差控制在±0.5 m以内;特别在高水位不小于170.00 m的情况下,即在长寿站水位最有可能超过土地征用线、移民迁移线时,误差可以控制在[-0.37 m,0.33 m]区间内。通过与深度学习方法和传统水动力学方法的分析对比发现:分段LassoLarsCV算法在历史样本数量较为充足、分布较为均匀的局部情况下拟合预测精度较高,因此具有实时更新知识库的独特效用;分段LassoLarsCV算法在历史样本数量相对较少的局部情况下,泛化预测效果不及模型更复杂、计算量更大的深度学习方法;在超出历史范围较大的水情下,包括分段LassoLarsCV算法和深度学习方法在内的基于数据分析的预测技术仍无法取代传统水动力学方法,因此在实践应用中需要根据具体情况结合使用3种方法。

参考文献:

[1] 杨世孝,肖子良.反求糙率的一种数值方法[J].数值计算与计算机应用,1994(4):247-260.

[2] 陈素红,刘孟凯,邢领航.基于多亲遗传算法的渠道非恒定流糙率率定模型及其应用[J].水电能源科学,2013,31(5):81-83.

[3] 陈一帆,程海洋,万晓丽,等.结合糙率校正的河网水情数據同化[J].水科学进展,2015,26(5):731-738.

[4] HOERL A E,KENNARD R W.Ridge Regression:Applications to Nonorthogonal Problems[J].Technometrics,1970,12(1);69-72.

[5] 王俊迪,许蕴山,彭芳,等.基于岭回归的红外协同定位优化算法[J].北京航空航天大学学报,2020,46(3):563-570.

[6] ROBERT T.Regression shrinkage and selection via the lasso [J].Journal of the Royal Statistical Society:Series B (Statistical Methodology),1996,58(1):267-288.

[7] 李小虹,常睿春.基于Lasso回归模型的区域可持续发展研究[J].科技经济导刊,2020(26):234-235.

[8] RYAN T,ROB T,JONATHAN T,et al.Least angle regression[J].Annals of Statistics,2004,32(2):407-451.

[9] 熊芩,张若秋,李辉,等.最小角回归算法(LAR)结合采样误差分布分析(SEPA)建立稳健的近红外光谱分析模型[J].分析测试学报,2018,37(7):778-783.

[10] 王秀振,钱永久,宋帅.基于随机森林和最小角回归的结构地震需求重要性度量分析[J].振动与冲击,2019,38(4):115-120.

[11] 孙嘉利,吴清太,温阳俊,等.基于FASTmrEMMA、最小角回归和随机森林的全基因组选择方法探索[J/OL].南京农业大学学报(2020-08-18) [2020-10-19].http://kns.cnki.net/kcms/detail/32.1148.S.20200818.1418.002.html.

[12] SANNER M F.Python:a programming language for software integration and development[J].Journal of Molecular Graphics & Modelling,1999,17(1):57-61.

[13] 雒文生.河流水文学[M].北京:水利电力出版社,1992.

(编辑:江 文)

猜你喜欢

三峡水库入库分段
2021年山西省6591家科技型中小企业入库
2018年—2020年山西省普通高考成绩分段统计表
中国食品品牌库入库企业信息公示②
中国食品品牌库入库企业信息公示①
分段函数的常见题型及其解法
《花花肠子》《倒车入库》《拔牙之后》《老农赶集》
例谈分段函数单调性问题的解决
寻求分段函数问题的类型及解法