(单步)VMD-CNN-BiLSTM预测模型

作品简介

此代码已经继续加入单步预测(单变量、多特征变量、风速、电力负荷预测)全家桶:单步预测全家桶(单变量、多特征变量、风速、电力负荷预测) (mbd.pub)

单变量包括以下内容:

1.VMD-CNN-Transformer预测模型 (mbd.pub)

2.VMD-CNN-BiLSTM预测模型 (mbd.pub)

3.基于Python时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较 (mbd.pub)

4.风速预测:基于EMD-LSTM的预测模型 (mbd.pub)

5.单步预测模型(三)CNN-GRU并行模型 (mbd.pub)

6.风速预测:EMD-Transformer模型 (mbd.pub)

7.单步预测模型(一)LSTM (mbd.pub)

8.风速预测:EMD-CNN-LSTM模型 (mbd.pub)

9.单步预测模型(二)CNN-LSTM模型 (mbd.pub)

10.风速预测:EMD-LSTM-Attention(基于Pytorch实现) (mbd.pub)

11.风速预测:EMD-CNN-GRU并行模型 (mbd.pub)

12.单步预测(八)CEEMDAN-TCN-Attention预测模型 (mbd.pub)

多特征变量包括以下内容:

1.多特征变量序列 TCN 预测 (mbd.pub)

2.多特征变量序列预测(七) CEEMDAN+Transformer-BiLSTM预测模型 (mbd.pub)

3.多特征变量序列预测(六) CEEMDAN+CNN-Transformer风速预测模型 (mbd.pub)

4.多特征变量序列预测(三)CNN-Transformer风速预测模型 (mbd.pub)

5.多特征变量序列预测(二)CNN-LSTM-Attention风速预测模型 (mbd.pub)

6.多特征变量序列预测(一)CNN-LSTM风速预测模型 (mbd.pub)

7.多特征变量序列预测(四)Transformer-BiLSTM风速预测模型 (mbd.pub)

8.多特征变量序列预测-Transformer预测模型 (mbd.pub)

9.多特征变量序列预测-LSTM预测模型 (mbd.pub)

10.多特征变量序列预测(五)CEEMDAN+CNN-LSTM风速预测模型 (mbd.pub)

11.多特征变量序列预测(11) 基于Pytorch的TCN-GRU预测模型 (mbd.pub)


包括 风速数据, 以及已经生成制作好的经过VMD分解的风速数据集、标签集,对应代码均可以运行

VMD-CNN-BiLSTM预测模型, 有着更小的MSE, MAE,效果特别明显

包括数据VMD预处理的代码,和完整VMD-CNN-BiLSTM模型预测代码、 模型评估代码、可视化代码

环境:python 3.9

任何环境安装或者代码问题,请联系作者沟通交流,对于购买者,作者免费解决后续问题,关注微信公众号[建模先锋],联系作者;


风速预测(七)VMD-CNN-BiLSTM预测模型

导读.png

前言

本文基于前期介绍的风速数据(文末附数据集),先经过VMD分解,然后通过数据预处理,制作和加载数据集与标签,最后通过Pytorch实现VMD-CNN-BiLSTM模型 对风速数据的预测,以提高时间序列数据的预测性能。风速数据集的详细介绍可以参考下文:

风速预测(一)数据集介绍和预处理

封面.png

模型整体结构:使用VMD算法对风速序列进行分解,形成一个分量 特征输入 ,通过滑动窗口制作数据集,来预测风速。 过CNN-BiLSTM模型提取分量空间、时域特征,然后再送入全连接层,实现 高精度的预测模型。


1 风速 VMD 分解与可视化


1.1 导入数据

风速可视化.png

1.2 VMD分解

第一步, 模态选取

根据不同K值条件下, 观察中心频率,选定K值; 从K=4开始出现中心频率相近的模态,出现过分解,故模态数 K 选为4。

分量选择.png


第二步,风速数据VMD分解可视化

VMD分解.png


2 数据集制作与预处理


先划分数据集,按照8:2划分训练集和测试集


在处理LSTF问题时,选择合适的窗口大小(window size)是非常关键的。选择合适的窗口大小可以帮助模型更好地捕捉时间序列中的模式和特征,为了提取序列中更长的依赖建模,本文把窗口大小提升到48,运用VMD-CNN-BiLSTM模型来充分提取分量序列中的特征信息。

数据集制作.png


3 基于Pytorch的VMD +CNN-BiLSTM 预测模型


3.1 定义VMD +CNN-BiLSTM预测模型

模型定义.png

注意:输入风速数据形状为 [64, 48, 4], batch_size=64,48代表序列长度(滑动窗口取值), 维度4维代表vmd分解出的4个分量特征。

3.2 设置参数,训练模型

模型训练.png

50个epoch,MSE 为0.001636,VMD+CNN-BiLSTM模型预测效果良好,加入VMD分解后,序列预测效果提升明显,性能优越,适当调整模型参数,还可以进一步提高模型预测表现。


注意调整参数:

  • 可以适当增加CNN层数和隐藏层的维度,微调学习率;
  • 调整LSTM层数和维度数,增加更多的 epoch (注意防止过拟合)
  • 可以改变滑动窗口长度(设置合适的窗口长度)

4 模型评估与可视化


4.1 结果可视化

预测可视化.png


4.2 模型评估

模型分数.png

面包多.png


1. 版权声明:原创不易,转载请注明转自微信公众号[建模先锋]

2. 喜欢的朋友可以点个关注,给文章点个“在看”,分享朋友圈或讨论群

3. 关注微信公众[建模先锋], 回复”风速“免费获取风速气象据集

创作时间: