往期精彩内容:
时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较
EMD变体分解效果最好算法------CEEMDAN(五)-CSDN博客
拒绝信息泄露!VMD滚动分解 + Informer-BiLSTM并行预测模型-CSDN博客
CEEMDAN +组合预测模型(BiLSTM-Attention + ARIMA)-CSDN博客
CEEMDAN +组合预测模型(Transformer - BiLSTM + ARIMA)-CSDN博客
基于麻雀优化算法SSA的CEEMDAN-BiLSTM-Attention的预测模型-CSDN博客
基于麻雀优化算法SSA的CEEMDAN-Transformer-BiGRU预测模型-CSDN博客
VMD + CEEMDAN 二次分解,BiLSTM-Attention预测模型-CSDN博客
基于麻雀优化算法SSA的预测模型------代码全家桶-CSDN博客
VMD + CEEMDAN 二次分解,CNN-Transformer预测模型-CSDN博客
风速预测(八)VMD-CNN-Transformer预测模型-CSDN博客
高创新 | CEEMDAN + SSA-TCN-BiLSTM-Attention预测模型-CSDN博客
VMD + CEEMDAN 二次分解,Transformer-BiGRU预测模型-CSDN博客
独家原创 | 基于TCN-SENet +BiGRU-GlobalAttention并行预测模型-CSDN博客
VMD + CEEMDAN 二次分解------创新预测模型合集-CSDN博客
独家原创 | BiTCN-BiGRU-CrossAttention融合时空特征的高创新预测模型-CSDN博客
CEEMDAN +组合预测模型(CNN-Transfromer + XGBoost)-CSDN博客
时空特征融合的BiTCN-Transformer并行预测模型-CSDN博客
独家首发 | 基于多级注意力机制的并行预测模型-CSDN博客
独家原创 | CEEMDAN-CNN-GRU-GlobalAttention + XGBoost组合预测-CSDN博客
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合-CSDN博客
独家原创 | CEEMDAN-Transformer-BiLSTM并行 + XGBoost组合预测-CSDN博客
回归预测模型 | LSTM、CNN、Transformer、TCN、串行、并行模型集合-CSDN博客
优化算法更新 | 基于WOA-CNN-BiLSTM的多步预测模型-CSDN博客
CEEMDAN-CNN-BiLSTM多步预测模型-CSDN博客
速成创新 | 基于KAN、KAN卷积的预测模型-CSDN博客
基于WOA-CNN-BiLSTM的多步预测模型-CSDN博客
多步预测更新 | 基于Transformer的组合预测模型-CSDN博客
模型简介:
本期基于某风电功率数据集,推出一种Informer-LSTM并行预测模型,在单步预测任务中预测效果提升明显!
效果对比:
LSTM 预测模型-模型评估:
LSTM 预测模型-预测可视化:
Informer-LSTM 并行预测模型:
模型评估:
预测可视化:
风电功率数据集特征分析---可视化:
我们同时提供基于多个数据集,在多个预测任务中,进行实验和对比,并提供详细的资料和解说文档,包括如何替换自己的数据集、参数调整教程,预测任务的替换等,代码逐行注释,参数介绍详细:
● 数据集:某风电场风电功率数据集、电力数据集、风速数据集等
● 环境框架:python 3.9 pytorch 1.8 及其以上版本均可运行
● 单步预测模型分数:测试集 0.98
● 使用对象:论文需求、毕业设计需求者
● 代码保证:代码注释详细、即拿即可跑通。
1 模型创新点介绍
1.1 结合Informer和RNN的优势
-
Informer:擅长处理长时间序列,能够并行计算,提高了计算效率和预测性能。Informer在Transformer的基础上进行了改进,使其更适合时序数据,特别是具有长时间依赖的序列数据。
-
LSTM:在捕捉序列数据的短期和长期依赖性方面表现出色,能够很好地处理序列数据中的时序关系。
通过将这两种模型并行使用,可以更好地捕捉不同时间尺度上的模式,提高预测的准确性和鲁棒性。
1.2 并行模型架构
并行使用Informer和LSTM,通过两个分支并行学习,可以使模型在不同的时间尺度上进行信息提取和处理:
-
Informer部分:处理全局时序模式,能够有效处理长时间序列数据。
-
LSTM部分:处理局部时序模式,能够有效捕捉短期依赖性和序列数据的动态变化。
这种架构能够更全面地捕捉时序数据的特征,提升模型的预测性能。
1.3 模型融合
将Informer和LSTM的输出拼接在一起,通过一个全连接层融合不同模型的特征。这种融合方式使得模型能够同时利用Informer的全局信息提取能力和LSTM的局部时序关系建模能力。
1.4 适应多种时序任务
该模型可以适应不同类型的时序任务,包括但不限于:
-
单变量时序预测:对单一时间序列进行预测。
-
多变量时序预测:对多种时间序列进行联合预测。
-
单步、多步预测任务灵活调整
通过调整输入特征的维度和模型结构,可以灵活地应用于各种时序预测任务。
1.5 高效计算
Informer的使用大大提高了长时间序列的计算效率,同时LSTM的使用确保了局部时序信息的充分利用。这种组合在保证高效计算的同时,提升了预测的精度和可靠性。
2 Informer 详解,三大创新点
2.1 概率稀疏注意力机制(ProbSparse Self-attention)
概率稀疏自注意力是Informer模型中引入的一种稀疏自注意力机制。其核心思想是通过概率方法选择最重要的一部分注意力权重进行计算,而忽略那些对结果影响较小的权重。这种方法能够显著降低计算复杂度,同时保持较高的模型性能。
-
稀疏自注意力:不同于标准 Transformer 的密集自注意力机制,Informer 引入了 ProbSparse Self-attention,通过概率抽样机制选择重要的 Q-K 对进行计算,减少了计算复杂度。
-
效率提升:稀疏注意力机制显著降低了计算复杂度,从 O(L2⋅d) 降低到 O(L⋅log(L)⋅d),其中 L 是序列长度,d 是每个时间步的特征维度。
2.2 多尺度特征提取-信息蒸馏
Informer的架构图并没有像Transformer一样在Encoder的左边标注来表示N个Encoder的堆叠,而是一大一小两个梯形。横向看完单个Encoder(也就是架构图中左边的大梯形,是整个输入序列的主堆栈)。
Encoder的作用是Self-attention Distilling,由于ProbSparse自相关机制有很多都是用V的mean填充的,所以天然就存在冗余的attention sorce ,因此在相邻的Attention Block之间应用卷积与池化来对特征进行下采样,所以作者在设计Encoder时,采用蒸馏的操作不断抽取重点特征,从而得到值得重点关注的特征图。
-
多尺度时间序列特征提取:Informer 通过多尺度的方式对不同时间粒度的特征进行建模,可以更好地捕捉时间序列中的多尺度依赖关系。
-
信息蒸馏:引入了信息蒸馏机制,通过层次化的时间卷积池化层逐步缩减时间步长,提取不同尺度的特征,实现长时间依赖的高效建模。
-
卷积降维:在编码器中使用1D卷积池化层进行降维,步长为2,使得序列长度减半,进一步减少计算复杂度。
-
信息压缩:通过卷积池化层进行信息压缩,将长序列信息浓缩到较短的时间步长中,从而更高效地进行时序建模。
2.3 时间编码
Informer在原始向量上不止增加了Transformer架构必备的PositionEmbedding(位置编码)还增加了与时间相关的各种编码:
-
日周期编码:表示一天中的时间点。
-
周周期编码:表示一周中的时间点。
-
月周期编码:表示一个月中的时间点。
在 LSTF 问题中,捕获远程独立性的能力需要全局信息,例如分层时间戳(周、月和年)和不可知时间戳(假期、事件)。
具体在这里增加什么样的GlobalTimeStamp还需要根据实际问题来确认,如果计算高铁动车车站的人流量,显然"假期"的时间差就是十分重要的。如果计算公交地铁等通勤交通工具的人流量,显然"星期"可以更多的揭示是否为工作日。
3 风电功率等数据集介绍
3.1 导入数据
风电功率数据集一共35040个样本,15个特征,取前6000条数据进行可视化:
3.2 其它数据集介绍
参考前期文章:
3.3 数据集制作与预处理
详细介绍见提供的文档!
4 基于Informer-LSTM的并行预测模型
4.1 定义Informer-LSTM并行预测网络模型
4.2 设置参数,训练模型
50个epoch,MSE 为0.01283,Informer-LSTM并行预测效果显著,模型能够充分利用Informer的长时间依赖建模能力和LSTM的短期依赖捕捉能力征,收敛速度快,性能优越,预测精度高,适当调整模型参数,还可以进一步提高模型预测表现。
5 结果可视化和模型评估
5.1 预测结果可视化
5.2 模型评估
由预测结果可见,在Informer-LSTM并行预测模型下拟合效果良好,通过这种设计,可以充分利用Informer和LSTM的优势,实现高效且准确的时序预测,组合预测效果显著!
6 Informer-LSTM并行模型调参攻略
在开发和调优基于Informer-LSTM的并行预测模型时,调参是一个关键步骤。通过合理的参数调整,可以显著提升模型的性能。详细教程见提供的文档!
6.1 模型架构参数
Informer部分
-
d_model: 模型的隐藏层维度。一般从128或256开始,逐步调整到512甚至更高。
-
n_heads: 注意力头的数量。常见值为4或8,可以根据隐藏层维度调整。
-
n_layers: Informer编码层、解码器的数量。一般设置为2-6层,更多层数可能提升模型的表达能力,但也增加了计算开销。
LSTM部分
-
hidden_dim: LSTM的隐藏层维度。一般从128或256开始,根据需要调整。
-
num_lstm_layers: LSTM层数。一般设置为1-3层,更多层数可以增加模型的复杂度和表达能力。
6.2 训练参数
-
batch_size: 每次训练的批量大小。常见值为32、64或128,根据内存大小和模型复杂度调整。
-
learning_rate: 学习率。初始值一般为1e-3或1e-4,可以使用学习率调度器动态调整。
-
epochs: 训练的轮数。通常从50-100开始,根据模型的收敛情况调整。
6.3 正则化和优化器
-
dropout: Dropout率。常见值为0.1-0.3,用于防止过拟合。
-
weight_decay: 权重衰减系数。常见值为1e-4,用于L2正则化。
-
optimizer: 优化器。常用Adam或AdamW,可以尝试其他优化器如SGD。
7 代码、数据整理如下:
点击下方卡片获取代码!