掌桥专利:专业的专利平台
掌桥专利
首页

基于改进粒子群Conv1D-Attention优化模型的水库水位预测预警方法

文献发布时间:2023-06-19 16:04:54



技术领域

本发明涉及水库水位预测预警技术领域,涉及一种基于改进粒子群Conv1D-Attention优化模型的水库水位预测预警方法。

背景技术

现有的水库水位调度技术,基于采集的水库水位监测数据、降雨量,再凭借人工经验及简单的数学推导公式进行调度水库水位,以将水库水位调度到水库安全水位。

水库历史水位、泄洪量、气象数据等是水库水位变化的重要影响因子,凭借人工经验及简单的数学推导公式,易忽略一些影响水库水位变化的重要因子,同时无法挖掘和使用到历史数据、不同特征维度之间的影响关系,亦无法提前把握未来水库水位的变化趋势,因此该方法只能对水库水位进行实时调度,而不能提前调度水库水位以应对未来的极端天气。

发明内容

有鉴于此,本发明的目的在于提供一种基于改进粒子群 Conv1D-Attention优化模型的水库水位预测预警方法,能够精准有效的对水库水位进行预测,并未极端天气的预警提供可靠数据。

为实现上述目的,本发明采用如下技术方案:

一种基于改进粒子群Conv1D-Attention优化模型的水库水位预测预警方法,包括以下步骤:

步骤S1:获取水库水位相关数据,并预处理,得到初始数据集;

步骤S2:基于初始数据集,进行特征工程处理,得到特征数据集;

步骤S3:将特征数据集划分为训练集和测试集,并进行数据重塑,将2D数据重塑为3D数据;

步骤S4:构建Conv1D-Attention模型;

步骤S5:采用改进的PSO优化算法对Conv1D-Attention模型进行寻优;

步骤S5:基于步骤S5获取的最优参数,构建并训练基于改进粒子群 Conv1D-Attention优化模型;

步骤S6:通过基于改进粒子群Conv1D-Attention优化模型,对水库水位进行预测。

进一步的,所述水库水位相关数据包括采集时间、水库水位、泄洪量和降雨量。

进一步的,所述预处理,具体为:

步骤S11:将水库水位、泄洪量、降雨量的采集时间归约到同一精度,并将采集时间作为关键字进行数据的连接;

步骤S12:连接完成后将数据集按采集时间进行排序,排序方式为升序;

步骤S13:对缺失值进行填补,得到初始数据集。

进一步的,所述步骤S2具体为:

步骤S21:基于初始数据集,构造时效分量;

步骤S22:基于初始数据集,进行水位特征变换;

步骤S23:对数据集进行归一化处理,得到特征数据集。

进一步的,所述时效分量,其构造的函数表达式如下所示:

f(β)=a

其中a

进一步的,所述水位特征变换,其特征变换的函数表达式如下所示:

其中水库水位数据采集时间为T

根据f(W)进行水库水位特征变换得W

进一步的,所述数据重塑,具体为:设原数据样本数为samples,特征features分别为time_effcent、rainfall、flood_Discharge、water_ago1Level、water_ago2Level、water_Level,原数据2D形状为 (samples,features),将其重塑后3D形状为(samples,width,features),重塑后数据单元有N=(samples-width+1)个。

进一步的,所述Conv1D-Attention模型包括Input层、第一Conv1D 堆叠层、第二Conv1D堆叠层、Flatten层和Dense堆叠层;

所述第一Conv1D堆叠层由两层Conv1D、一层Attention、一层 Maxpooling1D组成;所述第二Conv11D堆叠层由两层Conv1D、一层 Maxpooling1D组成。

进一步的,,所述Conv1D-Attention模型构建,具体如下:

步骤S41:将步骤S3中重塑完成后的数据读入Conv1D-Attention 模型的Input层中;

步骤S42:第一Conv1D堆叠层获取Input层中数据,并使用卷积核为(4,3)的Conv1D卷积层对数据进行特征提取,提取完成后将数据输入卷积核为(3,3)的Conv1D卷积层中对数据进行二次特征提取;

将二次特征提取完成后的数据输入Attention层,Attention层将根据注意力机制给予数据特征单元相应的权重,以标记不同数据特征单元对预测目标的重要性。

最大值池化层获取到被Attention层赋予权重的数据,并进行最大值池化,池化完成后输入第二Conv11D堆叠层;

步骤S43:第二Conv11D堆叠层获取步骤S42处理完成的数据输入第二Conv1D堆叠层卷积核为(6,3)的Conv1D层进一步进行数据特征提取,提取完成后输入卷积核为(5,3)的Conv1D进行最终的特征提取,并进行最大值池化,池化完成后输入Flatten层;

步骤S44:使用Flatten层池化完成后的数据压平处理,即把多维的输入一维化;

步骤S45:获取到Flatten层压平的数据使用Dense堆叠层指定预测序列输出的数据形状。

进一步的,所述步骤S5使用改进的PSO优化算法对 Conv1D-Attention模型的滑窗宽度、全连接层神经元个数、学习率、batch_size四个超参数进行寻优,具体如下:

步骤S51:设置改进的PSO的迭代次数、种群数量、搜寻维度

步骤S52:获取到Conv1D-Attention模型,并将模型中滑窗宽度、全连接层神经元个数、学习率、batch_size四个超参数使用未知数 c[0]~c[3]替换,替换完成后将模型MSE设置为返回值;

步骤S53:根据目标函数需要寻优的超参数,限定种群粒子各维度的初始化位置及速度,即寻优范围。限定完成后,进行初始化,并将初始化参数赋值给目标函数c[0]~c[3],执行Conv1D-Attention模型,并获取模型最终返回的MSE;

步骤S54:根据目标函数限定种群各维度的搜索位置和速度,设置完成后获取步骤步骤S53中MSE最接近零粒子搜索到的超参数,并记录该粒子位置及速度;

步骤S55:进行第一轮迭代当出现MSE更接近于零的粒子,更新记录的超参数,并重新记录粒子位置及速度,循环至满足预设要求,得到最优参数。

本发明与现有技术相比具有以下有益效果:

1、本发明使用CAC(Conv1D-Attention-Conv1D)架构,在Conv1D 提取特征的基础上加入了注意力机制,由此再一次进行Conv1D提取特征,经过两次的特征提取,有效的获取到了对预测水库水位更为重要的信息;

2、本发明在训练改进粒子群Conv1D-Attention优化模型过程中,根据数据采集时间,历史水库水位,挖掘出能体现水库水位在时间轴上的变化的时效因子,能体现历史水位的变化关系的水位分量,并将时效因子及水位分量纳入模型进行训练,有效的提高了模型预测精度;

3、本发明能够精准有效的对水库水位进行预测,并未极端天气的预警提供可靠数据。

附图说明

图1是本发明方法流程图

图2是本发明一实施例中重塑过程;

图3是本发明一实施例中Conv1D+Attention模型架构;

图4是本发明一实施例中改进的PSO寻优架构。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

请参照图1,本发明提供一种基于改进粒子群Conv1D-Attention优化模型的水库水位预测预警方法,包括以下步骤:

步骤S1:获取水库水位相关数据,并预处理,得到初始数据集;

步骤S2:基于初始数据集,进行特征工程处理,得到特征数据集;

步骤S3:将特征数据集划分为训练集和测试集,并进行数据重塑,将2D数据重塑为3D数据;

步骤S4:构建Conv1D-Attention模型;

步骤S5:采用改进的PSO优化算法对Conv1D-Attention模型进行寻优;

步骤S5:基于步骤S5获取的最优参数,构建并训练基于改进粒子群 Conv1D-Attention优化模型;

步骤S6:通过基于改进粒子群Conv1D-Attention优化模型,对水库水位进行预测。

在本实施例中,水库水位相关数据包括采集时间、水库水位、泄洪量和降雨量。

在本实施例中,预处理,具体为:

步骤S11:将水库水位、泄洪量、降雨量的采集时间归约到同一精度,并将采集时间作为关键字进行数据的连接;

步骤S12:连接完成后将数据集按采集时间进行排序,排序方式为升序;

步骤S13:对缺失值进行填补,得到初始数据集。

优选的,由于数据变化受前一天影响较大,因此缺失值使用缺失值的前一个值进行填补。

在本实施例中,步骤S2具体为:

构造时效分量,时效分量:描述的是水库水位随着时间的推移而产生的变化的部分,是一种综合因素引起的水库水位变化的表达,在影响水库水位变化因子中最为复杂。其构造的函数表达式如下所示:

f(β)=a

其中a

水位特征变换:描述的是水库水位随着时间的推移与其历史水库水位之间的联系,是水库水位变化的前置因子,其反应了水位变化的趋势和速度。其特征变换的函数表达式如下所示:

其中水库水位数据采集时间为T

因采集数据值较大,不同特征的值大小、单位都不同等,因此需要将数据值压缩以节约网络的计算资源并消除量纲带来的偏差。由于水库水位数据较为集中,离群点较少,选用最大最小值归一化。其函数表达式如下所示;

其中x

为检验模型的泛化能力,需要将数据集划分为训练集和测试集,其中数据前70%作为训练模型使用,后30%作为检验模型使用。

在本实施例中,将上述中数据读入,该数据2D形状,而基于注意力机制改进的PSO-Conv1D模型只能读取3D形状的数据,因此需要将形状为2D数据重塑为3D数据,详细重塑过程如2下图所示:

图中原数据样本数为samples,特征features分别为time_effcent、 rainfall、flood_Discharge、water_ago1Level、water_ago2Level、water_Level,原数据2D形状为(samples,features),将其重塑后3D 形状为(samples,width,features),重塑后数据单元有N= (samples-width+1)个。

参考图3,在本实施例中,Conv1D-Attention模型包括Input层、第一Conv1D堆叠层、第二Conv1D堆叠层、Flatten层和Dense堆叠层;所述第一Conv1D堆叠层由两层Conv1D、一层Attention、一层 Maxpooling1D组成;所述第二Conv11D堆叠层由两层Conv1D、一层Maxpooling1D组成。

进一步的,所述Conv1D-Attention模型构建,具体如下:

步骤S41:将步骤S3中重塑完成后的数据读入Conv1D-Attention 模型的Input层中;

步骤S42:第一Conv1D堆叠层获取Input层中数据,并使用卷积核为(4,3)的Conv1D卷积层对数据进行特征提取,提取完成后将数据输入卷积核为(3,3)的Conv1D卷积层中对数据进行二次特征提取;

将二次特征提取完成后的数据输入Attention层,Attention层将根据注意力机制给予数据特征单元相应的权重,以标记不同数据特征单元对预测目标的重要性。

最大值池化层获取到被Attention层赋予权重的数据,并进行最大值池化,池化完成后输入第二Conv11D堆叠层;

步骤S43:第二Conv11D堆叠层获取步骤S42处理完成的数据输入第二Conv1D堆叠层卷积核为(6,3)的Conv1D层进一步进行数据特征提取,提取完成后输入卷积核为(5,3)的Conv1D进行最终的特征提取,并进行最大值池化,池化完成后输入Flatten层;

步骤S44:使用Flatten层池化完成后的数据压平处理,即把多维的输入一维化;

步骤S45:获取到Flatten层压平的数据使用Dense堆叠层指定预测序列输出的数据形状。

参考图4,在本实施例中,步骤S5使用改进的PSO优化算法对 Conv1D-Attention模型的滑窗宽度、全连接层神经元个数、学习率、batch_size四个超参数进行寻优,具体如下:

步骤S51:设置改进的PSO的迭代次数、种群数量、搜寻维度

步骤S52:获取到Conv1D-Attention模型,并将模型中滑窗宽度、全连接层神经元个数、学习率、batch_size四个超参数使用未知数 c[0]~c[3]替换,替换完成后将模型MSE设置为返回值;

步骤S53:根据目标函数需要寻优的超参数,限定种群粒子各维度的初始化位置及速度,即寻优范围。限定完成后,进行初始化,并将初始化参数赋值给目标函数c[0]~c[3],执行Conv1D-Attention模型,并获取模型最终返回的MSE;

步骤S54:根据目标函数限定种群各维度的搜索位置和速度,设置完成后获取步骤步骤S53中MSE最接近零粒子搜索到的超参数,并记录该粒子位置及速度;

步骤S55:进行第一轮迭代当出现MSE更接近于零的粒子,更新记录的超参数,并重新记录粒子位置及速度,循环至满足预设要求,得到最优参数。

在本实施例中,优选的,改进的PSO采用新的惯性权重迭代方式,函数表达式如下所示:

其中,iter为当前迭代次数,iter

式(1)使用正切函数将迭代次数映射到整个实数区间中;

式(2)由sigmoid函数变种而来,保留了sigmoid函数的部分性质,能够将式(1)中的实数H映射到设定好的权重取值区间中,其中的伸缩系数σ可以控制函数的形状,该值越小,惯性权重的递减越平滑。

式(3)可以通过调整变形系数θ,改变函数的形状,该值在(-1, 0)区间时,惯性权重快速下降的节点推迟,PSO算法更注重全局寻优能力,相应的局部收敛能力会有所下降,该值在(0,+∞)区间时,惯性权重快速下降的节点提早,此时PSO算法更注重局部收敛能力,相应的更容易陷入局部最优。

σ=5、θ=0时,形成的惯性权重ω变化曲线;

在本实施例中,基于CPSO(混沌粒子群算法)粒子变异方式,提出了一种新的变异判别方式,其具体流程如下所示:

当ω<0.9ω

其中,

当ω<0.1ω

其中,

在本实施例中,根据最优超参数,将其带入模型,并输入训练集进行模型检验,以验证模型泛化能力,将训练并检验完成的模型保存到云端或本地,以备后续项目中调用该模型。

实施例1:

在本实施例中,使用Kafka将水库监测数据读入,生产者通过调用kafka相关的pythonAPI,将从流数据中读取出来的消息,生产并 push到Broker中;消费者则通过相应的分区分配策略,通过pull操作将流数据从broker拉取出来;

加载存储在云端或本地训练好的基于改进粒子群 Conv1D-Attention优化模型,当模型加载完成后,获取pull操作拉取出来的数据输入该模型进行水库水位的预测

根据水库水位预测值,将其与水库水位管理标准对比,若该预测水位在正常区间内,正常放闸即可;若该预测水位不在正常区间内,对比水库水位管理预警标准,返回水库各参数信息及预警等级,并根据返回的水库各项参数如降雨量、泄洪量、水库水位、预警等级等参数进行水库水位调度,以将水库水位控制在一个安全区间内,调度完成后,流程结束。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

技术分类

06120114695974