模型组合、注意力机制在单步、多步、单变量、多变量预测中的应用

作品简介

于TCN-BiLSTM-Attention模型的不同任务预测详解,探索同一个模型和数据集,在四种不同任务上的表现

预测宣传.png

● 环境框架:python 3.9  pytorch 1.8 及其以上版本均可运行

● 使用对象:论文需求、毕业设计需求者(也适合初学者,学习不同任务的处理方式)

● 代码保证:代码注释详细、即拿即可跑通。

● 输出结果:训练过程MSE损失曲线图、测试集模型分数-MAE-MSE-RMSE报告、预测可视化、向外预测(预测未来数据)

● 代码信息:价格实惠(99)https://mbd.pub/o/bread/ZpWYmJps或者点击文末阅读原文 获取代码

包括完整流程数据代码处理:

单步-多步、单变量-多变量预测数据集制作、数据加载、模型定义、参数设置、模型训练、模型测试、预测可视化、多步预测、模型评估

导读.png


模型整体介绍:

1. 时空卷积网络(TCN):

    ​TCN是一种卷积神经网络结构,用于捕捉时序数据中的时序关系。它由一系列的1D卷积层组成,每个卷积层都具有相同的卷积核大小和步长。 TCN中的残差连接(Residual Connections)和空洞卷积(Dilated Convolutions)用于增加网络的感受野,以便更好地捕捉时序数据中的长期依赖关系。 TCN可以同时处理多个时间步的输入,这使得模型能够在多个时间步上进行并行预测。


2.短期和长期依赖关系的捕捉:

  • TCN:通过卷积操作,能够有效捕捉时间序列中的短期依赖关系,同时由于其因果卷积和扩展卷积,能够处理较长的序列依赖关系。
  • BiLSTM:双向 LSTM 能够同时处理序列的前向和后向信息,捕捉序列中的长期和双向依赖关系。
  • 并行计算:TCN:卷积操作可以并行处理,相较于 RNN 的串行计算,TCN 在处理长序列时具有计算效率上的优势。

3.信息选择和权重分配:

Attention 机制:通过注意力机制,模型能够为输入序列中的不同部分分配不同的权重,从而更好地关注对预测结果有重要贡献的时间步。这有助于提高模型的预测精度和解释性。

4.稳定性和长序列处理能力:

TCN:由于使用了残差连接和扩展卷积,TCN 在处理长序列时更稳定,能够避免梯度消失和梯度爆炸问题。结合了 TCN、BiLSTM 和 Attention 的模型具有强大的表达能力,能够处理复杂的时间序列数据,并且提高预测的准确性和鲁棒性。

配有代码、文件介绍:

预测.png

模型介绍和调参教程:

电力变压器数据集的详细介绍可以参考下文:

电力变压器数据集介绍和预处理



1.1 导入数据

油温数据.png


1 单变量单步预测任务


1.1 任务描述

单变量单步预测,就是只有(用)一个变量 ,用已有的数据去预测未来的数据,每次预测一步

  • 输入训练集 变量:变量var-OT
  • 对应y值标签为: 变量var-OT

1.2 单变量单步预测预处理

数据预处理1.png


1.3 模型定义-基于TCN-BiLSTM-Attention的单变量单步预测

模型定义.png


1.4 设置参数,训练模型

模型训练1.png


1.5 预测结果可视化

模型预测1.png


1.6 模型评估

模型评估1.png


1.7 加载模型进行预测

进行预测.png


2 单变量多步预测任务

2.1 任务描述

单变量多步预测,就是只有(用)一个变量 ,用已有的数据去预测未来的数据,每次预测多步

  • 输入数据的形状应该是 (batch_size, window_size, input_dim)
  • 输出数据的形状应该是 (batch_size, num_steps, output_dim)

解释:

  • batch_size就是批次
  • input_dim 和 output_dim 就是对应输入维度,和输出维度( 如果单变量预测任务的话,就是输入输出都为1维)
  • window_size 就是输入样本序列的长度
  • num_steps 是需要预测的步长( 比如:用过去 12 个步长 ,预测未来 3 个步长)


2.2 单变量多步预测预处理

数据预处理2.png


2.3 模型定义-基于TCN-BiLSTM-Attention的单变量多步预测

模型定义.png


2.4 设置参数,训练模型

模型训练2.png


2.5 预测结果可视化

预测可视化2.png


每步预测单独可视化:

预测可视化222.png


2.6 模型评估

模型评估2.png


2.7 加载模型进行预测

进行预测2.png


3 多变量单步预测任务

3.1 任务描述

多变量单步预测,就是有(用)多个变量的数据去预测某个目标变量未来的数据,每次预测一步

  • 输入训练集 变量:所有特征变量(多个)
  • 对应y值标签为: 目标变量var-OT


3.2 单变量单步预测预处理

数据预处理3.png


3.3 模型定义、训练过程、评估、可视化、向外预测不再赘述

模型训练3.png


模型评估3.png


预测可视化3.png

多变量单步预测效果明显优于单变量单步预测效果,考虑到其他特征带来对目标变量预测更多的信息,其预测性能更显著!

任务

4.1 任务描述

多变量多步预测,就是有(用)多个变量的数据去预测某个目标变量未来的数据,每次预测多步

  • 输入数据的形状应该是 (batch_size, window_size, input_dim)
  • 输出数据的形状应该是 (batch_size, num_steps, output_dim)

解释:

  • batch_size就是批次
  • input_dim 和 output_dim 就是对应输入维度,和输出维度( 如果多变量预测任务的话,就是输入多维,输出为1维)
  • window_size 就是输入样本序列的长度
  • num_steps 是需要预测的步长( 比如:用过去 12 个步长 ,预测未来 3 个步长)

4.2 多变量多步预测预处理

数据预处理4.png


4.3 模型定义、训练过程、评估、可视化、向外预测不再赘述

模型评估4.png


可视化4.png


预测宣传.png


往期精彩内容:

时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较

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

风速预测(二)基于Pytorch的EMD-LSTM模型

风速预测(三)EMD-LSTM-Attention模型

风速预测(四)基于Pytorch的EMD-Transformer模型

风速预测(五)基于Pytorch的EMD-CNN-LSTM模型

风速预测(六)基于Pytorch的EMD-CNN-GRU并行模型

CEEMDAN +组合预测模型(BiLSTM-Attention + ARIMA)

CEEMDAN +组合预测模型(CNN-LSTM + ARIMA)

CEEMDAN +组合预测模型(Transformer - BiLSTM + ARIMA)

CEEMDAN +组合预测模型(CNN-Transformer + ARIMA)

多特征变量序列预测(一)——CNN-LSTM风速预测模型

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

多特征变量序列预测(三)——CNN-Transformer风速预测模型

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

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

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

基于麻雀优化算法SSA的CEEMDAN-BiLSTM-Attention的预测模型

基于麻雀优化算法SSA的CEEMDAN-Transformer-BiGRU预测模型

超强预测模型:二次分解-组合预测

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

多特征变量序列预测(八)基于麻雀优化算法的CEEMDAN-SSA-BiLSTM预测模型

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

VMD + CEEMDAN 二次分解,CNN-LSTM预测模型

VMD + CEEMDAN 二次分解,CNN-Transformer预测模型

VMD + CEEMDAN 二次分解,Transformer-BiGRU预测模型

基于麻雀优化算法SSA的预测模型——代码全家桶

电力变压器数据集介绍和预处理

独家原创 | SCI 1区 高创新预测模型!


END

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

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

3. 关注微信公众[建模先锋], 回复”变压器“免费获取变压器数据集


创作时间: