一种基于改进Elman神经网络的中长期径流预报方法与流程

文档序号:13934892阅读:217来源:国知局
一种基于改进Elman神经网络的中长期径流预报方法与流程

本发明涉及信息技术领域,特别是涉及一种基于改进elman神经网络的中长期径流预报方法。



背景技术:

径流量的准确预报是指导水资源综合开发利用、科学管理和优化调度的重要依据。目前,中长期水文预报方法大致可以分为2类:数据驱动模型和过程驱动模型。数据驱动模型是指不考虑水文过程的物理机制,直接基于历史数据建立预报对象(如年平均径流量)与预报因子(如前期大气环流因子)之间的最优数学关系,并借助这种数学关系对未来的水文变量进行预报。常用的建立数学关系的方法有线性回归、逐步回归、局部回归、人工神经网络、支持向量机等;过程驱动模型方法则需要借助能够反应流域产汇流特征的水文模型,并将未来中长期降雨信息作为模型输入从而得到预报对象的变化。流域水文系统是一个开放系统,水文系统中的变量关系等除了受地貌、地质、植被等相对确定因素的影响外,还受到气象条件、人类活动等诸多不确定因素的影响。由于影响因素的复杂与目前科学水平的限制,在对中长期径流的预报的方法中,相比于过程驱动模型方法,数据驱动模型方法应用更为广泛。数据模型驱动的方法主要包括多元回归、随机森林、人工神经网络、支持向量机等。目前常用的多元回归方法,是一种线性拟合方法,不能真正的反映变量间的非线性关系。神经网络模型因简易的网络结构、高效的学习过程和强大的知识表示能力,在水文预报领域也得到了广泛的运用。目前大多数基于神经网络的预报模型多采用bp及改进的bp神经网络,这是一种静态的前向型网络,直接将其运用于与时间序列有关的径流预测中存在一定的缺陷,且网络存在学习收敛速度慢、易陷入局部最优值等的问题。



技术实现要素:

发明目的:本发明的目的是提供一种学习收敛速度快、能够避免陷入局部最优值的基于改进elman神经网络的中长期径流预报方法。

技术方案:本发明所述的基于改进elman神经网络的中长期径流预报方法,包括以下步骤:

s1:数据预处理;

s2:选择预报因子,提取主成分;

s3:构建elman神经网络模型;

s4:对网络模型进行10折交叉验证;

s5:如果预报精度满足要求,则保存网络与预报结果;否则,转到步骤s2;

s6:如果预报次数达到要求,则计算所有预报结果的平均值;否则,转到步骤s4。

进一步,所述步骤s1中的数据预处理为:通过式(1)对水文资料时间序列和径流时间序列进行归一化;

式(1)中,x为待归一化的水文资料时间序列或径流时间序列,y为归一化后的水文资料时间序列或径流时间序列,xmin为水文资料时间序列的最小值或径流时间序列的最小值,xmax为水文资料时间序列的最大值或径流时间序列的最大值。

进一步,所述步骤s2包括以下步骤:

s2.1:将预处理后的水文资料时间序列和径流时间序列分别进行由小到大的排序;

s2.2:从1开始,分别对排序后的水文资料时间序列和径流时间序列进行标号,然后用标号代替水文资料时间序列和径流时间序列,得到水文资料时间秩序列和径流时间秩序列;

s2.3:通过式(2)计算水文资料秩序列和径流时间秩序列的秩相关系数rab:

式(2)中,a=(a1,a2,...,an)为径流时间秩序列,ai为径流时间秩序列a的第i个元素,b=(b1,b2,...,bn)为水文资料秩序列,bi为水文资料秩序列b的第i个元素,n为样本容量;

s2.4:在水文资料时间序列所对应的因子中,选出秩相关系数最高的前3到9个因子作为预报因子,计算这些因子的协方差矩阵;

s2.5:计算协方差矩阵的特征值和特征向量;

s2.6:将特征值按照由大到小的顺序排序,特征向量的顺序也做对应调整;

s2.7:将步骤s2.4选出的预报因子的时间序列以矩阵的形式组织在一起,形成因子序列矩阵,因子序列矩阵在特征向量上做投影,得到主成分矩阵;

s2.8:提取前几个主成分作为预报因子,具体选择前多少个主成分采用试错法确定;

s2.9:将提取的主成分划分为2个部分,也即训练样本和用于10折交叉验证筛选出的网络的检验样本。

进一步,所述步骤s3包括以下步骤:

s3.1:选择神经网络的训练算法;

s3.2:将网络输入层的节点数设置成与预报因子的个数相等;

s3.3:将网络输出层的节点数设置成与预报对象的个数相等;

s3.4:通过选用不同的隐含层节点数观察网络的预报效果来确定隐含层的节点数。

进一步,所述步骤s3.1中,通过式(3)更新神经网络的权值:

式(3)中,δω(k)为第k次更新时权值的改变量,η为学习速率,e为代价函数,ω为elman神经网络的权值矩阵,α为动量常数,0≤α<1。

进一步,所述步骤s4包括以下步骤:

s4.1:将步骤s2.9划分出的训练样本随机分成10个部分;

s4.2:在这10个部分中,选择1个作为检验样本,剩下的9个作为训练样本,并用训练样本对网络进行监督训练,用检验样本对训练好的网络进行检验;

s4.3:将检验样本作为训练好了的神经网络的输入,神经网络的输出称为检验阶段预报值,分别通过式(4)和(5)计算检验阶段预报值的平均绝对百分误差mape和合格率qr:

式(4)中,为检验期预测的径流值,xγ为对应的实际径流值,j为检验的样本个数;

式(5)中,nqual为合格的预报次数,ntotal为总的预报次数;

s4.4:重复步骤s4.2和s4.3十次,每次都从10个部分中选择1个不同的部分作为检验样本,剩下的9个部分作为训练样本,选出这十次中mape值最低、qr值最高的网络;

s4.5:用步骤s2.9划分出来的用于10折交叉验证筛选出的网络的检验样本和步骤s4.4选出来的网络进行试预报,检验预报效果。

有益效果:本发明公开了一种基于改进elman神经网络的中长期径流预报方法,在预报因子选择阶段,本发明采用了基于秩相关分析的因子选择方法,该方法对原始数据的样本大小和分布没有要求,用主成分分析法提取主成分,能够对选出的因子数据进行降维,提取的主成分用于网络模型的输入,能够防止神经网络过拟合;在模型构建阶段,利用反向传播算法和梯度下降算法对elman网络模型进行参数定,并对elman网络模型进行10折交叉验证,也能够有效防止神经网络过拟合,提高预报的精度;采用集合预报的方式,重复训练多个网络进行预测,把预测结果的平均值作为最终的预报结果,能够减少随机性的影响,提高预报的可靠性。此外,本发明学习收敛速度快、能够避免陷入局部最优值。

附图说明

图1为本发明具体实施方式对中长期径流量预报的总流程图;

图2为本发明具体实施方式对预报因子筛选的流程图;

图3为本发明具体实施方式对elman网络模型构建的流程图;

图4为本发明具体实施方式对模型交叉验证与试预报的流程图;

图5为本发明具体实施方式elman网络的结构图。

具体实施方式

本具体实施方式公开了一种基于改进elman神经网络的中长期径流预报方法,如图1所示,包括以下步骤:

s1:数据预处理;

s2:选择预报因子,提取主成分;

s3:构建elman神经网络模型;

s4:对网络模型进行10折交叉验证;

s5:如果预报精度满足要求,则保存网络与预报结果;否则,转到步骤s2;

s6:如果预报次数达到要求,则计算所有预报结果的平均值;否则,转到步骤s4。

步骤s1中的数据预处理为:通过式(1)对水文资料时间序列和径流时间序列进行归一化;

式(1)中,x为待归一化的水文资料时间序列或径流时间序列,y为归一化后的水文资料时间序列或径流时间序列,xmin为水文资料时间序列的最小值或径流时间序列的最小值,xmax为水文资料时间序列的最大值或径流时间序列的最大值。

如图2所示,步骤s2包括以下步骤:

s2.1:将预处理后的水文资料时间序列和径流时间序列分别进行由小到大的排序;

s2.2:从1开始,分别对排序后的水文资料时间序列和径流时间序列进行标号,然后用标号代替水文资料时间序列和径流时间序列,得到水文资料时间秩序列和径流时间秩序列;

s2.3:通过式(2)计算水文资料秩序列和径流时间秩序列的秩相关系数rab:

式(2)中,a=(a1,a2,...,an)为径流时间秩序列,ai为径流时间秩序列a的第i个元素,b=(b1,b2,...,bn)为水文资料秩序列,bi为水文资料秩序列b的第i个元素,n为样本容量;

s2.4:在水文资料时间序列所对应的因子中,选出秩相关系数最高的前3到9个因子作为预报因子,计算这些因子的协方差矩阵;

s2.5:计算协方差矩阵的特征值和特征向量;

s2.6:将特征值按照由大到小的顺序排序,特征向量的顺序也做对应调整;

s2.7:将步骤s2.4选出的预报因子的时间序列以矩阵的形式组织在一起,形成因子序列矩阵,因子序列矩阵在特征向量上做投影,得到主成分矩阵;

s2.8:提取前几个主成分作为预报因子,具体选择前多少个主成分采用试错法确定;

s2.9:将提取的主成分划分为2个部分,也即训练样本和用于10折交叉验证筛选出的网络的检验样本。

步骤s3包括以下步骤:

s3.1:选择神经网络的训练算法;

s3.2:将网络输入层的节点数设置成与预报因子的个数相等;

s3.3:将网络输出层的节点数设置成与预报对象的个数相等;

s3.4:通过选用不同的隐含层节点数观察网络的预报效果来确定隐含层的节点数。

步骤s3.1中,通过式(3)更新神经网络的权值:

式(3)中,δω(k)为第k次更新时权值的改变量,η为学习速率,e为代价函数,ω为elman神经网络的权值矩阵,α为动量常数,0≤α<1。

如图4所示,步骤s4包括以下步骤:

s4.1:将步骤s2.9划分出的训练样本随机分成10个部分;

s4.2:在这10个部分中,选择1个作为检验样本,剩下的9个作为训练样本,并用训练样本对网络进行监督训练,用检验样本对训练好的网络进行检验;

s4.3:将检验样本作为训练好了的神经网络的输入,神经网络的输出称为检验阶段预报值,分别通过式(4)和(5)计算检验阶段预报值的平均绝对百分误差mape和合格率qr:

式(4)中,为检验期预测的径流值,xγ为对应的实际径流值,j为检验的样本个数;

式(5)中,nqual为合格的预报次数,ntotal为总的预报次数;

s4.4:重复步骤s4.2和s4.3十次,每次都从10个部分中选择1个不同的部分作为检验样本,剩下的9个部分作为训练样本,选出这十次中mape值最低、qr值最高的网络;

s4.5:用步骤s2.9划分出来的用于10折交叉验证筛选出的网络的检验样本和步骤s4.4选出来的网络进行试预报,检验预报效果。

elman网络的结构如图5所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1