基于TCN-BiLSTM-Attention模型的不同任务预测详解,探索同一个模型和数据集,在四种不同任务上的表现
● 环境框架:python 3.9 pytorch 1.8 及其以上版本均可运行
● 使用对象:论文需求、毕业设计需求者(也适合初学者,学习不同任务的处理方式)
● 代码保证:代码注释详细、即拿即可跑通。
● 输出结果:训练过程MSE损失曲线图、测试集模型分数-MAE-MSE-RMSE报告、预测可视化、向外预测(预测未来数据)
● 代码信息:价格实惠(99)https://mbd.pub/o/bread/ZpWYmJps,或者点击文末阅读原文 获取代码
包括完整流程数据代码处理:
单步-多步、单变量-多变量预测数据集制作、数据加载、模型定义、参数设置、模型训练、模型测试、预测可视化、多步预测、模型评估
模型整体介绍:
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 的模型具有强大的表达能力,能够处理复杂的时间序列数据,并且提高预测的准确性和鲁棒性。
配有代码、文件介绍:
模型介绍和调参教程:
电力变压器数据集的详细介绍可以参考下文:
1.1 导入数据
1 单变量单步预测任务
1.1 任务描述
单变量单步预测,就是只有(用)一个变量 ,用已有的数据去预测未来的数据,每次预测一步
- 输入训练集 变量:变量var-OT
- 对应y值标签为: 变量var-OT
1.2 单变量单步预测预处理
1.3 模型定义-基于TCN-BiLSTM-Attention的单变量单步预测
1.4 设置参数,训练模型
1.5 预测结果可视化
1.6 模型评估
1.7 加载模型进行预测
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.3 模型定义-基于TCN-BiLSTM-Attention的单变量多步预测
2.4 设置参数,训练模型
2.5 预测结果可视化
每步预测单独可视化:
2.6 模型评估
2.7 加载模型进行预测
3 多变量单步预测任务
3.1 任务描述
多变量单步预测,就是有(用)多个变量的数据去预测某个目标变量未来的数据,每次预测一步
- 输入训练集 变量:所有特征变量(多个)
- 对应y值标签为: 目标变量var-OT
3.2 单变量单步预测预处理
3.3 模型定义、训练过程、评估、可视化、向外预测不再赘述
多变量单步预测效果明显优于单变量单步预测效果,考虑到其他特征带来对目标变量预测更多的信息,其预测性能更显著!
任务
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.3 模型定义、训练过程、评估、可视化、向外预测不再赘述
往期精彩内容:
时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较
风速预测(四)基于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-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预测模型
END
1. 版权声明:原创不易,转载请注明转自微信公众号[建模先锋]
2. 喜欢的朋友可以点个关注,给文章点个“在看”,分享朋友圈或讨论群
3. 关注微信公众[建模先锋], 回复”变压器“免费获取变压器数据集