基于小波包分解的GJO-XGBoost水面蒸发量预测

时间:2024-02-29 18:42:03 来源:网友投稿

陈金红 崔东文

(1.云南省水利水电投资有限公司,昆明 650051;2.云南省文山州水务局,云南 文山 663000)

水面蒸发量是反映全球水循环变化趋势的重要指标之一,是核定区域水资源量的重要内容.提高水面蒸发量预测精度,对于水文情报预报及分析区域水量平衡、水资源变化趋势具有重要意义.近年来,各种机器学习模型,如随机森林[1]、GPR、Cat Boost、XGBoost网络[2]、BP神经网络[3]、RBF神经网络[4]等已在水面蒸发量预测研究中得到应用,并取得较好的预测效果.由于水面蒸发量时间序列受热力因子、动力因子、水分因子等影响[5],常表现出非线性和多尺度等特征,传统单一模型难以获得满意的水面蒸发量预测效果.当前,基于“分解算法+智能算法+预测模型+叠加重构”的预测方法已在各行业领域及水文预测预报研究中得到广泛应用[5-7],但鲜见于水面蒸发量时间序列预测.

极端梯度提升(XGBoost)算法是在GBDT(gradient boosting decision tree,GBDT)算法的基础上做了大量优化,提升了算法的性能和速度,是树集成算法的典型代表,具有拟合效果好、训练速度快等优点,已在水面蒸发量[8]、降水量[9]、电力峰值负荷预测[10]等领域得到广泛应用.然而,XGBoost算法包含迭代次数、学习率、最大树深、最小样本权重和、样本采用率等许多超参数,这些超参数对预测模型的实现效率和预测性能有着较大影响,超参数的合理选取是提升XGBoost算法预测性能的关键,目前,遗传算法等[11-16]若干优化算法已在XGBoost超参数调优中得到应用,并取得较好的调优效果.

为提高水面蒸发量时间序列预测精度,改进XGBoost预测性能,拓展群体智能算法(swarm intelligence algorithms,SIA)在XGBoost超参数调优中的应用范畴,本文基于小波包变换(wavelet packet transform,WPT)和“分解算法+智能算法+预测模型+叠加重构”思想,研究提出金豺优化(golden jackal optimization,GJO)算法调优XGBoost超参数的水面蒸发量时间序列预测模型,并构建WPTPSO-XGBoost、WPT-GJO-SVM、WPT-PSO-SVM、WPT-XGBoost对比分析模型,通过云南省龙潭站、董湖站、西洋站1991年1月至2021年12月逐月水面蒸发量时序数据对各模型预测性能进行验证,为水面蒸发量预测研究提供参考.

2.1 研究区概况与数据来源

云南省气候、地形类型多样,各水文要素分布十分复杂.龙潭站始建于1952 年2 月,位于盘龙河中游,控制径流面积3 128 km2,属国家重要水文站和中央报汛站,观测项目有水位、流量、蒸发等.盘龙河流域属低纬度高原季风气候,流域内冬无严寒,夏无酷暑,年温差小,日温差大,无霜期长,流域月平均蒸发量82.6 mm,最大月蒸发量168.4 mm,最小月蒸发量40.3 mm,蒸发量起伏波大,差异明显.由于海拔高低悬殊,具有明显的立体气候特征.董湖站设立于1958年12月,位于南利河下游,控制流域面积2 369 km2,属国家重要水文站和中央报汛站,观测项目有水位、流量、蒸发等.南利河流域地处低纬度地区,属南亚热带高原季风气候,具有冬春干凉、夏秋湿润,气候垂直差异大、立体气候明显等特征.高海拔的山地为暖湿带、湿带气候,下游河谷为热带气候.流域蒸发量年内分配不均,一般最大蒸发出现在4-5月,11月至次年2月蒸发量最少.流域月平均蒸发量75.1 mm,最大月蒸发量139.8 mm,最小月蒸发量38.1 mm,月蒸发量差异明显.西洋站设立于1958年10月,位于西洋江中游,控制流域面积2 473 km2,属国家重要水文站和中央报汛站,观测项目有水位、流量、降雨、蒸发.西洋江流域属于中亚热带高原季风气候,常年气候温和,流域内雨水充沛,雨量集中,干湿季分明,气候总特征为“夏无酷暑,冬无严寒”.流域月平均蒸发量73.7 mm,最大月蒸发量144.5 mm,最小月蒸发量29.6 mm,月蒸发量差异显著.龙潭站、董湖站、西洋站蒸发观测均采用E601型蒸发皿.

本文以云南省龙潭站、董湖站、西洋站1991年1月至2021年12月共372组逐月水面蒸发量为研究对象,逐月蒸发量时序数据变化曲线如图1所示.从图1可以看出,龙潭站、董湖站、西洋站月蒸发时序数据呈现出典型的出多尺度、非线性特征.

图1 龙潭站、董湖站、西洋站逐月水面蒸发时序数据

2.2 研究方法

2.2.1 小波包变换(WPT)

WPT 能同时对信号低频部分和高频部分进行分解,更适用于水面蒸发量时间序列分解.WPT 对水面蒸发量原始信号进行分解的公式为[17-21]:

式中各参数意义详见文献[17-21].

2.2.2 金豺优化(GJO)算法

GJO 算法是Nitish Chopra等于2022年提出的一种基于种群的新型元启发式优化算法[22].该算法灵感来自于自然界中金豺协作狩猎行为,算法通过一对雄性和雌性金豺协同搜索猎物、包围猎物、突袭猎物建立数学模型实现待优化问题的求解.

参考文献[22],GJO 数学描述简述如下:

1)初始化.与其他元启发式算法一样,GJO 通过随机初始化金豺种群开始,金豺个体初始化位置描述为:

式中:Y0为金豺个体初始位置;Ymax、Ymin为搜索范围上、下限;Rand为[0,1]范围内的随机数.

2)探索阶段(搜索猎物).GJO 中,金豺知道如何感知和跟踪猎物,但偶尔会有猎物逃脱.狩猎由雄性金豺领导,雌性金豺跟随雄性金豺狩猎.搜索行为描述如下:

式中:Y1(t)、Y2(t)为对应猎物的雄性和雌性金豺位置;t为当前迭代次数;Prey(t)为第t次迭代猎物位置;YM(t)、YFM(t)为雄性和雌性金豺第t次迭代位置;E为猎物逃避能量,描述为:E=c1·[1-(t/T)]·(2r-1),c1为常数,本文取1.5;T为最大迭代次数;r为介于0和1之间的随机数;RL为基于Levy飞行的随机数;其他参数意义同上.

3)开发阶段(围捕和突袭猎物).当猎物受到金豺攻击时,其逃避能量逐渐降低.金豺对围住的猎物展开突袭,并将其捕食.雄性和雌性金豺一起狩猎的行为描述如下:

式中,参数意义同上.

4)位置更新.GJO 依据式(6)更新金豺位置.

式中:Y(t+1)为第(t+1)次迭代金豺位置;其他参数意义同上.

2.2.3 XGBoost算法

XGBoost属于Boosting 集成学习算法,具有良好的拟合和泛化能力.对于给定的数据集D={(x i,y i)},XGBoost学习k棵树,采用以下函数对样本进行预测[6-8]:

通过多个决策树使预测值接近真实值,XGBoost目标函数为:

式中:l(φ)为损失函数;n为训练样本数量;y i为第i个样本实测值;Ω(φ)为正则项.正则项对每颗回归数的复杂度进行惩罚,XGboost学习出来的模型更加不容易过拟合.

树的复杂度通常由树的深度、内部节点个数、叶子节点个数、叶子节点分数等指标进行衡量.XGboost对叶子节点个数进行惩罚,相当于在训练过程中做了剪枝:

式中:T为叶子结点个数;ω为叶子结点分数;γ、λ用来增强模型控过拟合能力.

XGBoost算法中,迭代次数M、学习率l、最大树深d、最小样本权重和w、样本采用率u、对列采样率s、正则系数σ是影响XGBoost预测性能的关键.为确定最优XGBoost超参数,本文使用GIO 对其进行调优.

2.2.4 算法验证

本文在3维至100维条件下,选取表1中4个函数对GJO、PSO 进行仿真测试,并利用20次寻优平均值进行评估.设置GJO、PSO 最大迭代次数Tmax=200,种群规模n=50,其他参数采用各算法默认值.

表1 函数寻优结果

对于单峰函数和多峰函数,GJO 寻优精度分别较PSO 提高12个和5个数量级以上.GJO 寻优效果优于PSO,尤其是在低维(3、5、10维)情形下,GJO 具有更佳的寻优精度.

2.3 建模流程

步骤1:为尽量减少模型的计算规模,本文基于dmey小波基函数,利用1 层WPT 将龙潭站、董湖站、西洋站1991年1月—2021年12月逐月水面蒸发量时序数据分解为2个子序列分量[1,1]和[1,2],如图2所示.

图2 龙潭站、董湖站、西洋站水面蒸发时序数据WPT 分解

从图2可以看出,[1,1]分量频率最小,为时间序列的低频部分,大致反映水面蒸发量时序数据的变化趋势;[1,2]分量波动激烈且频率较大,为时间序列的高频部分,大致反映水面蒸发量时序数据的随机性特征.

步骤2:采用文献[19-20]方法确定分量[1,1]、[1,2]的嵌入维数k,并利用前k月水面蒸发分量来预测当月水面蒸发分量.预测模型的输入、输出表示为:

式中:Youtput为月水面蒸发量预测输出值;u为月水面蒸发量序列长度;k为嵌入维或滞后数.

经计算,龙潭站、董湖站、西洋站水面蒸发分量[1,1]和[1,2]的k值分别为27和11、14和18、19和22.本文选取1991年1月-2011年12月(252月)作为训练样本,2012年1月-2021年12月(120月)作为预测样本.

步骤3:利用各分量训练样本构建GJO 优化XGBoost迭代次数、学习率、最大树深、最小样本权重和、样本采用率、对列采样率、正则系数共7个超参数的适应度函数f:

步骤4:设置GJO、PSO 最大迭代次数Tmax=100,种群规模n=30,其他参数采用各算法默认值;设置XGBoost迭代次数M、学习率l、最大树深d、最小样本权重和w、样本采用率u、对列采样率s、正则系数σ的搜索范围分别为[5,50]、[0.01,0.5]、[1,5]、[0.5,1]、[0.5,1]、[0.1,10]、[0.1,10];SVM 超参数搜索范围设置为[2-5,25].所有模型水面蒸发时序数据均采用[-1,1]进行归一化处理(PSO 调优XGBoost超参数以及GJO、PSO 调优SVM 超参数可参考实现).

步骤5:利用式(3)在搜索空间中随机初始化金豺位置Y0;同时初始化猎物矩阵Prey,其中第一和第二猎物位置对应的一对雄性和雌性金豺位置.

步骤6:计算猎物适应度值,找到并保存当前第一和第二猎物位置,即对应雄性和雌性金豺位置Y1、Y2.令当前迭代次数t=1.

步骤7:计算猎物逃避能量E.若|E|≥1,利用式(4)、式(5)和式(8)更新金豺位置;若|E|<1,利用式(6)、式(7)和式(8)更新金豺位置.

步骤8:计算位置更新后的猎物适应度值,比较并保存当前雄性金豺位置Y1.

步骤9:重复步骤7~8直至满足算法最大迭代次数.

步骤10:输出雄性金豺位置Y1,该位置即为XGBoost最佳超参数.利用该超参数建立WPT-GJOXGBoost模型对各实例[1,1]、[1,2]分量进行预测和加和重构.

步骤11:利用平均绝对百分比误差、平均绝对误差对各模型进行评估,见式(14).

构建WPT-GJO-XGBoost、WPT-PSO-XGBoost、WPT-GJO-SVM、WPT-PSO-SVM、WPT-XGBoost模型对龙潭站、董湖站、西洋站月水面蒸发量进行训练及预测,预测结果如图3~5所示,预测效果如图6所示.

图3 龙潭站水面蒸发量预测结果

图4 董湖站水面蒸发量预测结果

图5 西洋站水面蒸发量预测结果

图6 水面蒸发量预测结果

由图3~6可以得出:

1)WPT-GJO-XGBoost模型对龙潭站水面蒸发量预测的EMAP、EMA分别为5.491%、4.70 mm,预测精度分别较WPT-PSO-XGBoost、WPT-GJO-SVM、WPT-PSO-SVM、WPT-XGBoost模型提高了14.9%、10.6%、18.7%、42.8%和14.6%、8.6%、13.1%、43.5%;对董湖站水面蒸发量预测的EMAP分别为4.943%、3.37 mm,预测精度分别较WPT-PSO-XGBoost、WPT-GJO-SVM、WPT-PSO-SVM、WPTXGBoost模型提高了33.2%、14.2%、38.1%、57.8%和29.9%、12.1%、35.6%、53.6%;对西洋站水面蒸发量预测的EMAP分别为5.024%、3.39 mm,预测精度分别较 WPT-PSO-XGBoost、WPT-GJO-SVM、WPT-PSO-SVM、WPT-XGBoost模型提高了29.1%、2.1%、6.4%、52.5%和26.6%、4.2%、7.8%、52.5%.WPT-GJO-XGBoost模型预测精度优于WPT-PSOXGBoost、WPT-GJO-SVM、WPT-PSO-SVM 模型,远优于WPT-XGBoost模型,具有较好的精度和泛化能力,将其用于水面蒸发量预测是可行的.

2)WPT-GJO-XGBoost模型对龙潭站、董湖站、西洋站水面蒸发量的预测误差远小于WPT-XGBoost模型,证明GJO 能有效调优XGBoost超参数,提高XGBoost 的预测性能;WPT-GJO-XGBoost、WPT-GJO-SVM 预测精度高于对应的WPT-PSOXGBoost,WPT-PSO-SVM 模型,说明GJO 对XGBoost、SVM 超参数的调优效果要优于PSO;算法寻优性能越好,超参数调优效果越佳,由此所构建的模型预测精度也越高.

3)从图6可知,WPT-XGBoost模型预测误差波动幅度较大,预测可靠性较低;相比之下,WPT-GJOXGBoost模型预测误差最小、精度最高,能更好地逼近真实值,这进一步证明了WPT-GJO-XGBoost模型预测能力的准确性.

针对水面蒸发量时间序列多尺度、非线性特征和XGBoost超参数选取困难等不足,建立WPT-GJOXGBoost水面蒸发量时间序列预测模型,并构建WPT-PSO-XGBoost等4种对比预测模型,通过云南省龙潭站、董湖站、西洋站3个水面蒸发量预测实例对各模型进行验证.结论有以下几点:

1)GJO 具有较好的寻优性能,将GJO 用于XGBoost超参数调优是可靠的.

2)通过与 WPT-PSO-XGBoost、WPT-GJOSVM、WPT-PSO-SVM、WPT-XGBoost 模型相比,提出的WPT-GJO-XGBoost模型能显著提高水面蒸发量预测精度,3个实例预测的EMAP均低于5.5%,充分验证了预测模型的可靠性和准确性.模型预测精度高、泛化性能好,同时具有简洁高效等特点,有着较好的推广价值.

3)GJO 能有效调优XGBoost超参数,提高XGBoost的预测性能;算法寻优性能越好,XGBoost超参数调优效果越佳,由此所构建的模型预测精度也越高.

猜你喜欢龙潭蒸发量西洋龙潭画影中华民居(2020年2期)2020-09-12清宫里的西洋钟表师紫禁城(2019年11期)2019-12-18紫禁城内的西洋科学家紫禁城(2019年11期)2019-12-18九龙潭的龙读友·少年文学(清雅版)(2019年1期)2019-05-091958—2013年沽源县蒸发量变化特征分析现代农业科技(2017年10期)2017-07-12多向土工格栅在龙潭水库裂缝处理中的应用水利技术监督(2017年3期)2017-06-091981—2010年菏泽市定陶区蒸发量变化特征分析现代农业科技(2017年6期)2017-05-12**民丰县地表水面蒸发量分析水利科技与经济(2017年4期)2017-04-22对郑和下西洋的再认识中学历史教学(2016年1期)2016-11-11达孜县夏秋季大小型蒸发量特征、影响因子与差异分析地球(2016年7期)2016-08-23

推荐访问:蒸发量 分解 水面