一种基于VMD-BO-BiLSTM的月降水量预测方法

未命名 09-29 阅读:103 评论:0

一种基于vmd-bo-bilstm的月降水量预测方法
技术领域
1.本发明属于深度学习及气象预测研究技术领域,尤其涉及一种基于vmd-bo-bilstm的月降水量预测方法。


背景技术:

2.月降水量预测研究对于农业工作具有重要的指导作用。农业从业人员可以根据未来降水量的变化情况来决定适宜的作业时机,例如种植、施肥和灌溉,以确保农业工作的高质量完成。此外,根据降水预测结果,还可以及时准备防旱和防涝等措施,以减少天气变化对农作物的不利影响。因此,深入研究降水预测理论与技术,并准确把握未来降水趋势的变化对于洪涝和干旱的防治、水资源的利用和储存等方面具有重要意义。
3.全球气候变暖会导致极端降水事件的发生,降水是一个复杂的非线性过程,其发生的天气学条件非常复杂,同时还受到地形和海拔等各种因素的影响。因此,降水量的预测难度很大,提高预测准确率一直是研究人员关注的焦点之一。
4.目前,在人工智能技术快速发展的背景下,深度学习算法因其能够高效处理大量数据特征信息、学习气象要素之间作用规律的能力,以及准确描述降水非线性变化过程的优势,已经被许多研究人员应用于降水预测领域。
5.然而,现阶段的月降水量预测研究仅考虑了历史降水量的时序特征,忽略了未来降水量变化规律与当前降水量的联系。此外,由于月降水量数据在不同月份之间缺乏强时间相关性,且具有大幅度的变化和较差的平稳性,会导致模型特征提取不充分且训练压力大。


技术实现要素:

6.本发明为解决目前在月降水量预测过程中,挖掘降水数据的时序特征的片面性和不充分性,以及人工设定网络参数的局限性等问题,提供一种基于vmd-bo-bilstm的月降水量预测方法,实现自主学习降水的时序特征,降低降水数据的非稳定性,并预测未来月降水量变化趋势。
7.为实现上述目的,本发明采用如下技术方案,其特征在于,包括:
8.对原始月降水数据进行预处理,包括数据筛选、数据清洗、数据集构建、数据归一化。
9.采用vmd方法将原始月降水数据分解为若干子序列。
10.建立bilstm网络模型,并使用贝叶斯算法优化网络参数,将各个子序列输入模型进行训练和预测,并对比分析实验结果。
11.进一步地,所述数据筛选包括筛选出降水特征,所述降水特征包括记录时间,区站号,经度,维度,海拔高度和月降水量。
12.进一步地,所述数据清洗包括针对数据中降水量为9999的部分,使用上一个月的降水量对其填充。
13.调用python语言的fillna函数填充缺省值。
14.每六小时的降水量超过350毫米视为异常,对异常数据用固定值0代替。
15.进一步地,所述数据集构建包括每日逐六小时记录一次六小时内的降水量数据。
16.进一步地,所述数据归一化包括将数据限定在一定范围内,采用min-max的归一化方法进行数据归一化。
17.进一步地,所述采用vmd方法将原始降水数据分解为若干子序列包括使用vmd方法将原始数据从时域转换为不同频域上的8个子序列。
18.进一步地,所述建立bilstm网络模型,并使用贝叶斯算法优化网络参数,将各个子序列输入模型进行训练和预测,并对比分析实验结果包括:
19.1)构建bilstm网络模型:初始化bilstm模型的网络参数,包括正向层和反向层的神经元数量、学习率、全连接层神经元数量;设置网络结构,包括输入层、bilstm层、平铺层和全连接层。
20.2)在贝叶斯优化过程中,优化的参数包括:学习率、bilstm模型前向层和反向层的神经元数量、全连接层神经元数量;定义参数优化空间,建立贝叶斯概率模型,并在每次的迭代更新中,选择一组网络参数初始化bilstm模型。
21.3)将月降水数据训练集输入bilstm模型进行训练,计算训练误差作为贝叶斯优化算法的目标函数值,根据概率模型采集函数求解得到更优的超参数。
22.4)将测试集的各个子序列输入bilstm模型,得到的各分量预测结果并叠加得到最终月降水量预测值,进行对比分析。
23.5)根据更新的超参数重新建立概率代理模型,并使用该超参数重新建立bilstm模型,再次执行4)操作,直至达到最大迭代次数。
24.6)当贝叶斯优化过程达到最大迭代次数后,获得参数最优组合,从而建立bilstm模型。
25.7)将测试集输入bilstm模型进行预测,输出预测结果。
26.与现有技术相比本发明有益效果。
27.本发明对月降水量预测研究方向具有重要的学术意义和应用参考价值。本发明针对月降水量数据不具有平稳性,会导致模型提取时序特征不充分的问题,且经典lstm网络没有考虑到未来时刻降水量变化特征对当前时刻降水量的影响,本方法以辽宁省本溪市明山区观测站逐月降水量数据为研究对象,使用滑动窗口构建数据集,得到多组具有多元时间特征的输入输出数据。首先采用了vmd方法将原始数据分解为多个子序列,有效降低了数据的非平稳性,然后使用bilstm网络对数据进行训练和测试,最后结合贝叶斯算法优化超参数,建立了基于vmd-bo-bilstm月降水量预测模型,经过与bilstm、bo-bilstm和vmd-bilstm进行对比分析,实验结果表明,首先,贝叶斯算法能够获得更适合的网络参数,提高了预测精度,增强了模型的鲁棒性,验证了贝叶斯算法优化bilstm的有效性和可行性;其次,vmd方法可以减轻模型提取时序特征的压力,并能充分学习月降水数据的变化规律,提升了模型预测精度。
28.本发明给出的vmd-bo-bilstm模型与其他模型相比,具有更低的误差,r2达到了0.968。体现了vmd-bo-bilstm模型在月降水量预测上的优势。本发明的vmd方法从数据本身出发,提高了模型预测能力的上限,为月降水量人工预测提供了新思路。
附图说明
29.下面结合附图和具体实施方式对本发明做进一步说明。本发明保护范围不仅局限于以下内容的表述。
30.图1为原始数据基于变分模态分解的分解结果;
31.图2为四种模型拟合过程中loss曲线的变化;
32.图3为四种模型的降水预测结果与真实值的对比。
具体实施方式
33.本发明以月降水量为研究对象,首先,使用bilstm网络,考虑历史和未来两个方向的时序信息,挖掘降水量变化更深层次的特征。
34.其次,由于降水数据不具有平稳性,变化幅度大,时间相关性不明显,导致模型不能充分提取时序特征且模型训练压力大,vmd方法可以将原始数据从时域转换到频域,得到多个在不同频域上的子序列,每个子序列的非线性特征具有一定变化规律,所以采用vmd方法降低降水数据的非平稳性,可以减轻模型提取时序特征的压力。
35.最后,由于贝叶斯算法有迭代速度快、寻优效率高等特点,可能够在较少的目标函数评价下,通过建立黑盒函数输出后验概率寻找复杂目标函数的最优解,所以采用贝叶斯优化算法优化bilstm超参数。从而建立基于vmd-bo-bilstm的月降水量预测模型,并与bilstm、bo-bilstm和vmd-bilstm进行实验对比,总结模型的优势和不足。
36.实施例:一种基于vmd-bo-bilstm预测方法,该方法的实现过程分为三个步骤:
37.第一步骤:数据的预处理:数据筛选、数据清洗、数据集构建和数据归一化。
38.第二步骤:使用vmd方法将原始数据分解为在不同频域上的子序列。
39.第三步骤:搭建模型进行训练并对比分析实验结果。
40.具体过程如下:
41.第一步骤,数据来源为辽宁省气象局提供的地面观测降水资料,选择辽宁省本溪市明山区观测站的每日逐6小时降水量作为实验数据集,将降水量累加得到月降水数据,时间跨度为1989年7月至2019年12月,对该降水数据进行预处理;首先数据筛选将降水特征筛选出来,然后清洗脏数据,利用前一时刻的降水数据对当前时刻缺省值填充;其次进行数据集构建,将原始数据的观测时间间隔和记录降水时间间隔统一处理为每日逐六小时,得到的每日观测时间分别为2时、8时、14时和20时,即每日逐六小时记录一次六小时内的降水量数据。然后使用滑动窗口重构数据集:将窗口长度设置为5,逐步向后滑动窗口,来获得连续时刻的多元时间特征,窗口的下一个时刻的降水数据为该序列数据的标签,由此获得多组输入输出数据,见表1。
42.表1重构的数据集
[0043][0044]
最后进行归一化操作,采用min-max的归一化方法,计算公式为:
[0045][0046]
式(1)中,x
*
为归一化后的数据;xi为当前数据;x
min
、x
max
分别为数据集中的最小值、最大值。
[0047]
第二步骤,采用vmd方法将原始数据从时域转化到频域上,得到多个分布在不同频域上的子序列,每个子序列的信息特征形成相对平稳的非线性曲线,所以可以减轻神经网络挖掘时序特征的负担,提高模型学习时序特征的效率。其次因为本文研究内容为时序预测,lstm网络凭借记忆单元,具有高效处理时序特征的能力,而bilstm网络是对lstm网络的改进,在保持对长时间序列记忆能力的同时,又可以考虑到历史和未来两个方向上的信息,所以选用bilstm网络作为训练模型。又因为根据经验来人工设定网络参数,往往会导致模型存在局限性,性能受限,且泛化能力差,所以采用优化方法合理设置网络参数,由于贝叶斯优化方法,具有迭代次数少、优化快、不易陷入局部最优等特点,因此采用此方法优化bilstm网络参数,从而进一步提高模型性能和预测准确率。
[0048]
变分求解过程将原始数据分解为k个模态分量,使每个模态分量的估计带宽之和最小化,其约束变分模型表达式如下:
[0049][0050][0051]
式(2)、(3)中,uk为信号的第k个分解的模态分量;wk为第k个模态分量的中心频率;δ(t)为单位脉冲函数;为变量t的偏导数;f(t)为时序数据。
[0052]
为求得上述变分模型的最优解,引入二次惩罚因子α和拉格朗日算子λ(t),将其转变为非约束变分问题,得到表达式如下:
[0053][0054]
采用交替乘子方向算法(alternate direction method of multipliers,admm)不断迭代,求式(4)的最优解。更新变量uk、wk、λ的表达式如下:
[0055][0056][0057][0058]
式(5)、(6)、(7)中,分别代表各变量对应的傅里叶变换;为当前的维纳滤波结果剩余量,为当前模态的中心频率。
[0059]
经过vmd方法分解的模态数量为8,即分解的子序列个数为8。各个子序列如图1所示。
[0060]
第三步骤,分别实现贝叶斯算法的优化过程和bilstm网络的搭建,建立bo-bilstm模型,将第二步骤得到的训练集输入vmd-bo-bilstm模型进行训练并与其他模型进行对比分析。
[0061]
1)采用贝叶斯算法优化学习率、bilstm网络模型的前向层和反向层的神经元数量以及全连接层的神经元数量。实验中使用python的hyperopt库,为分布式异步超参数优化库。在训练过程中,当迭代次数为80时,贝叶斯算法的目标函数值基本不再下降,所以设置优化算法的最大迭代次数为80。定义的超参数优化范围见表2。
[0062]
表2超参数优化范围
[0063][0064]
贝叶斯优化操作内容如下:
[0065]
利用目标函数的先验概率分布和已知有限的观测样本拟合后验概率分布,然后根据后验概率分布评估最有可能的最优解,不断更新最优解,最后得到最优超参数。因此贝叶斯算法的迭代搜索是在之前的更新结果之上的,充分利用了已知的数据信息,提高了优化效率。该优化过程主要有两个核心要素:概率代理模型和采集函数。概率代理模型近似当前的目标函数,首先采用高斯定理得到目标函数的后验概率分布,由此构成采集函数,利用采集函数寻找最优参数组合,直到达到最大迭代次数。
[0066]
概率代理模型:概率代理模型近似当前的目标函数,采用高斯定理得到目标函数的后验概率分布,高斯过程(gaussian process,gp)是函数的分布,它可以由均值函数和协方差函数确定,见式(8)。
[0067]
f(x)~gp(m(x),k(x,x

))(8)
[0068]
式(2.17)中,m(x)为均值函数,k(x,x

)为协方差函数。
[0069]
超参数组合(x1,x2,...,x
t
)和对应的目标函数值(f(x1),f(x2),...,f(x
t
))构成数据集d={(x1,f(x1)),(x2,f(x2)),...,(xn,f(x
t
))},其高斯分布过程见式(9)。
[0070][0071]
对于新样本x
t+1
,通过高斯过程对应的f(x
t+1
)联合已知的观测样本,得到后验概率分布见式(10)。
[0072][0073]
式(10)中,μ
t
、分别为高斯过程得到的均值和期望。
[0074]
采集函数:通过后验概率分布构成采集函数,利用采集函数寻找最优参数组合,直到达到最大迭代次数。因为本文求解目标函数的最小值,所以使用置信下界策略(lower confidence bound,lcb),公式见式(11)。
[0075][0076]
式(11)中,β
t
用于平衡期望和方差。
[0077]
2)在bilstm网络模型中,网络层分别有输入层、bilstm层、平铺层和全连接层。在本发明中,降水数据在输入层中,首先将其维度变为bilstm模型要求的三维输入格式,设置输入样本数为训练集维度的长度,循环核时间展开步数为5,每个时间步输入特征数为9;其次将数据送入bilstm层,该层分为正向层和反向层,各层的神经元数量是所需优化的参数;然后将bilstm层的输出数据送入平铺层,该层将多维数据展开成一维;最后,设置两层全连接层,将平铺层的输出数据送入第一层全连接层,该层的神经元数量是所需优化的参数,最后一层全连接层输出降水量预测结果,所以该层只设置一个神经元。3)为客观评估本发明模型的准确性和有效性,选择mse、mae和决定系数r2从多角度评估模型的性能,其表达式分别为:
[0078][0079][0080][0081]
式中,yi为降水量真实值;为降水量预测值;为降水量真实值的平均值;m为迭代次数。
[0082]
4)将步骤二的子序列分别输入vmd-bo-bilstm模型进行预测,将各分量的预测结果叠加得到最终预测值。并分别与bilstm、vmd-bilstm和bo-bilstm三种模型进行实验对比,各模型最终的参数设置见表3。其中优化的参数分别是:学习率、全连接层神经元数量、
前向层神经元数量以及反向层神经元数量当迭代次数为80时,贝叶斯算法的目标函数值基本不再下降,所以设置优化算法的最大迭代次数为80。
[0083]
表3参数设置
[0084][0085]
5)使用1989年7月至2019年12月的月降水数据进行实验分析,其中,训练集和测试集分别占整体数据集的75%和25%。使用bilstm、vmd-bilstm、bo-bilstm和vmd-bo-bilstm四种模型进行训练和预测,得到各模型在训练过程中的损失函数下降变化曲线如图2所示,得到各模型的预测结果与真实值的对比如图3所示,得到模型的评价函数指标对比如表4所示。
[0086]
表4四种模型的评价函数指标对比
[0087][0088]
实验结果表明:
[0089]
1)对比分析图2中训练集和测试集的loss曲线变化。bilstm的loss曲线存在波动,可能模型在拟合过程中存在陷入局部最优的问题。bo-bilstm的loss曲线比bilstm更平滑,验证集损失函数下降更多,说明模型的权重更新更合理,但是拟合时间相对延长。vmd-bilstm和vmd-bo-bilstm的loss曲线不仅下降更多,而且拟合时间较短,相较于日降水量、周降水量以及15天降水量预测的拟合时间,也有一定缩短。两者的测试集loss曲线也更接近训练集,训练效果更好。
[0090]
2)对比分析图3中各模型的预测结果。从图中可以发现,对于降水量突增的几处情况,bilstm的预测结果往往偏高,而bo-bilstm的预测结果要好于bilstm,说明bo-bilstm具有一定鲁棒性,但两者仍存在明显滞后性。vmd-bilstm和vmd-bo-bilstm的预测曲线基本与真实曲线重合,无论是大降水量还是小降水量,模型的预测结果均较好,而且相比于日降水量、周降水量和15天降水量预测,模型在月降水量预测上表现更好,表明月降水数据在一定程度上更具有时间相关性。
[0091]
3)对比表4的评价指标,bo-bilstm与bilstm相比,虽然mae增大0.796,但rmse降低约3.227,r2提升0.082。vmd-bo-bilstm与vmd-bilstm相比,mae、rmse分别降低约2.301、2.962,r2提升约0.117。vmd-bilstm与bilstm相比,mae、rmse分别降低约26.753、46.127,r2提升约0.748。vmd-bo-bilstm与bo-bilstm相比,mae、rmse分别降低约29.85、45.862,r2提升约0.683。表明vmd方法大幅度提升了月降水预测准确率。本文的vmd-bo-bilstm模型在mae、rmse上最低,r2最高。
[0092]
综上所述,本发明使用滑动窗口构建数据集,采用vmd方法将数据分解为多个子序列,有效降低了数据的非平稳性,并结合贝叶斯优化bilstm网络,建立了基于vmd-bo-bilstm月降水预测模型。实验结果表明,贝叶斯算法能够有效优化bilstm模型,而且vmd方法不仅能提高bilstm学习时序特征的效率,还能大幅度提升预测精度,且贝叶斯算法能够获得更适合的网络参数。vmd-bo-bilstm模型与其他模型相比,具有更低的误差,r2达到了0.98。体现了贝叶斯算法优化神经网络的价值和vmd方法的有效性,为月降水量的预测提供了新思路。
[0093]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;因而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

技术特征:
1.一种基于vmd-bo-bilstm的月降水量预测方法,其特征在于:包括:对原始月降水数据进行预处理,包括数据筛选、数据清洗、数据集构建、数据归一化;采用vmd方法将原始月降水数据分解为若干子序列;建立bilstm网络模型,并使用贝叶斯算法优化网络参数,将各个子序列输入模型进行训练和预测,并对比分析实验结果。2.根据权利要求1所述的一种基于vmd-bo-bilstm的月降水量预测方法,其特征在于:所述数据筛选包括筛选出降水特征,所述降水特征包括记录时间、区站号、经度、维度、海拔高度和月降水量。3.根据权利要求1所述的一种基于vmd-bo-bilstm的月降水量预测方法,其特征在于:所述数据清洗包括针对数据中降水量为9999的部分,使用上一个月的降水量对其填充;调用python语言的fillna函数填充缺省值;每六小时的降水量超过350毫米视为异常,对异常数据用固定值0代替。4.根据权利要求1所述的一种基于vmd-bo-bilstm的月降水量预测方法,其特征在于:所述数据集构建包括每日逐六小时记录一次六小时内的降水量数据。5.根据权利要求1所述的一种基于vmd-bo-bilstm的月降水量预测方法,其特征在于:所述数据归一化包括将数据限定在一定范围内,采用min-max的归一化方法进行数据归一化。6.根据权利要求1所述的一种基于vmd-bo-bilstm的月降水量预测方法,其特征在于:所述采用vmd方法将原始降水数据分解为若干子序列包括使用vmd方法将原始数据从时域转换为不同频域上的8个子序列。7.根据权利要求1所述的一种基于vmd-bo-bilstm的月降水量预测方法,其特征在于:所述建立bilstm网络模型,并使用贝叶斯算法优化网络参数,将各个子序列输入模型进行训练和预测,并对比分析实验结果包括:1)构建bilstm网络模型:初始化bilstm模型的网络参数,包括正向层和反向层的神经元数量、学习率、全连接层神经元数量;设置网络结构,包括输入层、bilstm层、平铺层和全连接层;2)在贝叶斯优化过程中,优化的参数包括:学习率、bilstm模型前向层和反向层的神经元数量、全连接层神经元数量;定义参数优化空间,建立贝叶斯概率模型,并在每次的迭代更新中,选择一组网络参数初始化bilstm模型;3)将月降水数据训练集输入bilstm模型进行训练,计算训练误差作为贝叶斯优化算法的目标函数值,根据概率模型采集函数求解得到更优的超参数;4)将测试集的各个子序列输入bilstm模型,得到的各分量预测结果并叠加得到最终月降水量预测值,进行对比分析;5)根据更新的超参数重新建立概率代理模型,并使用该超参数重新建立bilstm模型,再次执行4)操作,直至达到最大迭代次数;6)当贝叶斯优化过程达到最大迭代次数后,获得参数最优组合,从而建立bilstm模型;7)将测试集输入bilstm模型进行预测,输出预测结果。

技术总结
本发明属于深度学习及气象预测研究技术领域,尤其涉及一种基于VMD-BO-BiLSTM的月降水量预测方法。其实现自主学习降水的时序特征,降低降水数据的非稳定性,并预测未来月降水量变化趋势。其包括:对原始月降水数据进行预处理,包括数据筛选、数据清洗、数据集构建、数据归一化;采用VMD方法将原始月降水数据分解为若干子序列;建立BiLSTM网络模型,并使用贝叶斯算法优化网络参数,将各个子序列输入模型进行训练和预测,并对比分析实验结果。并对比分析实验结果。并对比分析实验结果。


技术研发人员:于霞 张博臻 宋杰 李冰洁 孙佳毓 刘鼎歆 段勇
受保护的技术使用者:沈阳工业大学
技术研发日:2023.07.13
技术公布日:2023/9/26
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐