组合模型、注意力机制在单步、多步、单变量、多变量预测中的应用
模型整体介绍:
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 多变量多步预测任务
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 模型定义、训练过程、评估、可视化、向外预测不再赘述
点击下载:原文完整数据、Python代码https://mbd.pub/o/bread/ZpaWkp5q