本项目基于 ETTh1 电力变压器油温数据集,完成单变量多步时序预测实验。项目以 OT 油温字段作为预测目标,使用过去 96 个时间步的数据预测未来 24 个时间步的变化趋势。
系统主要包含数据读取、时间排序、缺失值检查、训练/验证/测试集划分、StandardScaler 标准化、滑动窗口构造、Dataset 与 DataLoader 封装、模型训练、模型保存、模型加载、预测结果逆标准化、MAE/RMSE/horizon MAE 指标计算和结果可视化等模块。
项目分别实现了 LSTM 神经网络模型和 Linear 线性神经网络模型,用于对比深度循环模型与基础线性模型在多步预测任务上的表现。最终输出整体预测误差、每个预测时间步的 MAE,并生成对应的结果文件和可视化图像,便于后续模型对比分析。
项目整体采用 Python + PyTorch 实现,围绕 ETTh1 时序预测任务搭建完整实验流程。首先使用 Pandas 读取原始 CSV 数据,对 date 字段进行时间格式转换,并按照时间顺序排序,确保时序数据不存在乱序问题。随后按照 6:2:2 的比例划分训练集、验证集和测试集。
在数据预处理阶段,为避免数据泄漏,只使用训练集拟合 StandardScaler,并将同一个 scaler 应用于验证集和测试集。之后基于 seq_len=96、pred_len=24 构造滑动窗口,将连续时间序列转换为监督学习样本,输入形状为 [batch_size, 96, 1],预测标签形状为 [batch_size, 24, 1]。
模型部分分别实现了 LSTMModel 和 LinearModel。LSTM 模型通过循环神经网络提取历史 96 个时间步中的动态特征,并使用全连接层输出未来 24 步预测;Linear 模型则将 96 个历史点直接映射到 24 个预测点,用作基础对照模型。训练阶段使用 MSELoss 作为损失函数,Adam 优化器更新参数,并加入验证集最佳模型保存和早停机制。
评估阶段加载最佳模型,在测试集上进行预测,并将标准化后的预测结果逆标准化回原始 OT 数值尺度。最终计算 MAE、RMSE 以及每一个预测 horizon 的 MAE,用于分析模型在未来不同预测步上的误差变化。