基于EMD+模拟退火优化DBN的风速预测模型

目录

0.引言        

1.数据说明

2.实验分析

2.1 DBN预测         

2.2 EMD分解+DBN

2.3 EMD+模拟退火+DBN


0.引言        

针对时间序列预测的自相关性导致的预测值滞后于实际值的问题,1)采用EMD方法对序列进行分解,2)对每个分量进行DBN建模,3)为进一步提高dbn的精度,采用模拟退火SA对DBN各层节点数进行优化。结果表明EMD+SA+DBN预测精度最高。 

1.数据说明

        风速预测主要是时间序列预测,通常采用滚动序列建模,即采用1-n时刻风速作为输入,第n+1时刻风速作为输出,然后采用第2到n+1时刻风速作为输入,第n+2时刻风速作为输出,这样进行滚动建模。

图1 原始时间序列

2.实验分析

2.1 DBN预测         

        直接采用DBN进行滚动建模结果如图2所说。一般情况下,得到的效果都还不错,但是会有一个很严重的问题,就是预测值“滞后“于实际值现象,以图3为例,可以看出这种滞后现象。

图2 DBN预测结果
图3 滞后现象

       由图3可知,这个预测得到的值滞后于真实值,相当于当前时刻预测的是上一时刻的值。因此,即使精度较高,这个模型依旧是无法使用的。主要原因是:点这里,因为序列存在自相关,实际上DBN并没有学习到风速预测模型,而是学习到了这种自相关性,而这个在时间序列预测上是及其常见的。

2.2 EMD分解+DBN

       为了解决这个滞后问题,采用EMD经验模态分解先对序列进行分解得到IMF本征模态分量,然后对每个imf建立DBN预测模型,如图4所示。最后将各IMF对应的DBN的预测值相加,得到最终的预测结果,结果如图5所示:

图4 序列分解

         

图5 EMD+DBN

2.3 EMD+模拟退火+DBN

        最后,为再一次提升精度,本文采用SA模拟退火算法对DBN的各隐含层节点数进行寻优,得到一个较优的网络结构,优化流程如图6所示,得到的结果如图7所示。

图6 SA优化DBN流程
图7 EMD+SA+DBN

        结果显示经SA优化后的DBN,精度得到了再一次提升。

        最后对上述各算法结果进行对比

代码链接:点这里


版权声明:本文为qq_41043389原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。