多特征变量序列预测(11) 基于Pytorch的TCN-GRU预测模型
多特征变量序列预测(11) 基于Pytorch的TCN-GRU预测模型
本文基于前期介绍的风速数据(文末附数据集),介绍一种基于TCN-GRU网络模型的多特征变量序列预测模型。TCN-GRU模型是一种结合了 Temporal Convolutional Network (TCN) 和 Gated Recurrent Unit (GRU) 的深度学习模型,用于时间序列预测任务。该模型结合了卷积神经网络的并行化计算和循环神经网络的记忆性能,能够有效地捕捉时间序列数据中的长期依赖关系,以提高时间序列数据的预测性能。
模型整体结构:数据集一共有天气、温度、湿度、气压、风速等九个变量,通过滑动窗口制作数据集,利用多变量来预测风速。通过TCN-GRU预测模型进提取特征后,再送入全连接层,实现高精度的预测模型。
TCN(Temporal Convolutional Network)是一种基于卷积神经网络的时间序列模型。它使用一维卷积层来捕捉时间序列数据中的局部和全局特征。通过多个卷积层和非线性激活函数的堆叠,TCN 可以有效地扩展感受野,捕捉不同时间尺度的信息。
GRU(Gated Recurrent Unit)是一种循环神经网络单元,用于处理序列数据。GRU 使用门控机制(门控单元)来控制信息的流动和记忆的更新。通过遗忘门、更新门和重置门,GRU 可以有效地捕捉序列数据中的长期依赖关系,并避免梯度消失或梯度爆炸的问题。
TCN-GRU 预测模型将 TCN 和 GRU 结合在一起。首先,通过 TCN 层对时间序列数据进行特征提取和表示学习。然后,将 TCN 的输出作为 GRU 的输入,利用 GRU 的记忆性能进行进一步的序列建模和预测,能够高效的并行计算、有着较低的内存消耗、能够处理长期依赖关系和一定的灵活性。
风速数据集的详细介绍可以参考下文:
风速预测(一)数据集介绍和预处理_noaa风速数据-CSDN博客
1 多特征变量数据集制作与预处理
1.1 导入数据
1.2 数据集制作与预处理
先划分数据集,按照9:1划分训练集和测试集,制作数据集
2 基于Pytorch的TCN-GRU 预测模型
2.1 定义TCN-GRU预测模型
注意:输入风速数据形状为 [32, 7, 8], batch_size=32,7代表序列长度(滑动窗口取值), 维度8维代表挑选的8个变量的维度。
2.2 设置参数,训练模型
50个epoch,MSE 为0.00704,多变量特征TCN-GRU预测效果良好,性能优越,适当调整模型参数,还可以进一步提高模型预测表现。
注意调整参数:
- 可以适当增加TCN层数和隐藏层的维度,微调学习率;
- 调整GRU层数和每层神经元个数,增加更多的 epoch (注意防止过拟合)
- 可以改变滑动窗口长度(设置合适的窗口长度)