程序名称:基于SPDConv-BiLSTM的多变量时间序列预测
实现平台:python—Jupyter Notebook
代码简介:构建了基于SPDConv(空间-深度卷积)-BiLSTM(双向长短期记忆网络)多变量时间序列预测模型。对比了BiLSTM、CNN-BiLSTM、SPDConv-BiLSTM的预测结果。高创新点,原创未发表,注释超详细,几乎每行一注释。限量。
SPD-Conv先对特征图按采样因子切片重排,将时空信息无损压入通道维,再用1×1卷积融合降维,替代跳步卷积或池化,实现下采样不丢失细节,提升小目标与低分辨率任务性能。
原文SPDConv的提出用于机器视觉领域,现有大部分结合该算法的文献也都是应用于图像识别等(如结合YOLO),本代码创新性的将SPDConv与双向长短期记忆神经网络结合,应用于时间序列预测。
SPDConv(空间-深度卷积)原理
SPDConv 与 BiLSTM 结合做时间序列预测的核心思想是:用 SPD-Conv 的无信息丢失下采样,替代传统“大步长卷积 / 池化”,把序列压短后再送进 BiLSTM,从而既减少计算量,又保留高频细节,让双向 LSTM 更容易学到精细动态。
传统做法的痛点:为了降低长序列的计算量,常见套路是先用 Conv1D(stride=2) 或 MaxPool1D 把时间维减半。stride>1 的卷积 / 池化会 直接扔掉 50 % 的采样点,导致高频、小幅度但关键的变化信息永久丢失;当序列本身较短、信噪比低或突变频繁时,后续 BiLSTM 再强也恢复不了已被丢弃的信息,预测误差增大。
SPD-Conv 的“无损下采样”机制,把“Space-to-depth”思想搬到 时间维 → Time-to-depth (T2D)。时间维减半,计算量;所有原始采样点都保留在通道里,没有信息丢失;后续可接普通 Conv1D(kernel_size=1或3) 做跨通道融合,进一步压缩通道数。
与 BiLSTM 的结合点,整体模块顺序:Input → SPD-Conv1D → BiLSTM → Dense →Output
SPD-Conv1D 负责“无损压缩”时间维,得到更短但 richer 的表示;
BiLSTM 在缩短后的序列上执行 双向时序建模,捕捉长期依赖;
因为序列已变短,BiLSTM 的O(T²) 计算量显著下降,可堆更多层或增大隐状态;
最后全连接层把隐状态映射为预测值。
特性 | 传统Conv1D(stride>1)或MaxPool1D | SPD-Conv(Time-to-depth + Conv1D) |
下采样方式 | 直接跳步采样 / 取最大或平均 | 时间维切片重排 → 通道维拼接 |
信息是否丢失 | 是,被跳过的时刻永久丢弃 | 否,全部采样点保留在通道里 |
输出形状变化 | T×C → (T//s)×C | T×C → (T//s)×(C·s) |
可学习参数 | 有(Conv 权重)或无(Pool) | 有(1×1 或 3×1 Conv 融合通道) |
感受野扩展速度 | 依赖 stride 大小 | 等价 stride,无信息缺口 |
计算量 | 低 | 略高(通道增加后 1×1Conv 可再压缩) |
对高频/小幅度信号 | 易丢失细节 | 保留完整细节 |
对短序列/小目标 | 性能下降明显 | 性能更稳健 |
参考文献:《No More Strided Convolutions or Pooling:A New CNN Building Block for Low-Resolution Images and Small Objects》
代码获取方式:【原创代码分享】基于融合SPDConv-GSConv-Agent Attention的时间序列预测模型
BiLSTM - RMSE:0.1039 MAE:0.0557
Conv1D-BiLSTM - RMSE:0.0996 MAE:0.0427
SPD-BiLSTM - RMSE:0.0969 MAE:0.0413
程序名称:基于GSConv-BiLSTM的多变量时间序列预测
实现平台:python—Jupyter Notebook
代码简介:构建了基于GSConv(混合标准卷积与深度可分离卷积)-BiLSTM(双向长短期记忆网络)多变量时间序列预测模型。对比了BiLSTM、CNN-BiLSTM、GSConv-BiLSTM的预测结果。高创新点,原创未发表,注释超详细,几乎每行一注释。限量。
GSConv(Grouped Shuffle Convolution)是一个轻量级卷积模块,可以实现标准卷积(SC)与深度可分离卷积(DSC)的优势互补,用 SC 提取全局通道关系,用 DSC 提取局部空间信息,再通过通道 shuffle 把两部分轻量地融合。
原文GSConv的提出用于机器视觉领域,现有大部分结合该算法的文献也都是应用于图像识别等(如结合YOLO),本代码创新性的将GSConv与双向长短期记忆神经网络结合,应用于时间序列预测。
把时间轴看成“一维空间”,即可得到时间序列版 GSConv:主分支采用 1D-SC(大核)捕获长程依赖,辅助分支采用 1D-DSC(小核)捕获短期波动,二者拼接后 shuffle,实现“既省参数又保表达力”的特征增强。
GSConv卷积原理
将GSConv 与BiLSTM 结合的流程是:先把原始多变量序列输入 GSConv1D 模块,得到兼具局部细节与全局趋势的时序特征;随后把特征送入BiLSTM,由其双向递归结构进一步建模长期前后依赖;最后取 BiLSTM 的末端隐藏状态,经全连接层输出未来时刻的预测值。GSConv 的并行卷积还可减少 BiLSTM 的层数与宽度,从而显著降低整体参数量。
这种组合的优势体现在三方面:1) 计算高效——GSConv 用DSC 减少冗余,卷积可并行,训练比纯 BiLSTM 更快;2) 表达力强——显式分离长短期模式,避免 LSTM 因梯度消失而遗忘长期信息;3) 部署友好——整体模型更小,可在边缘设备上实时运行,同时对噪声和突变更具鲁棒性。
模型 | 传统BiLSTM | GSConv+BiLSTM |
特征提取 | 依赖LSTM的递归结构,局部模式需通过大量参数学习 | 显式分离局部(DSC)和全局(SC)特征,效率更高 |
参数量 | LSTM参数量大(尤其是多变量序列) | GSConv减少冗余参数(DSC的轻量性),整体更轻 |
训练速度 | LSTM串行计算,训练慢 | GSConv卷积并行化加速,BiLSTM层数可减少 |
长短期依赖 | LSTM可能遗忘长期模式 | GSConv预提取长期依赖,BiLSTM专注双向整合 |
抗噪性 | 对高频噪声敏感 | DSC分支的局部卷积可平滑高频噪声 |
参考文献:《Slim-neck by GSConv: A lightweight-design for real-time detector architectures》
代码获取方式:【原创代码分享】基于融合SPDConv-GSConv-Agent Attention的时间序列预测模型
GSConv+BiLSTM提升效果显著!
程序名称:基于CNN-Agent Attention-BiGRU的多变量时间序列预测
实现平台:python—Jupyter Notebook
代码简介:构建了基于CNN(卷积神经网络)-Agent Attention(代理注意力机制)-BiGRU(双向门控循环单元)多变量时间序列预测模型。对比了CNN-BiGRU、CNN-Attention-BiGRU、CNN-Agent Attention-BiGRU的预测结果。高创新点,原创未发表,注释超详细,几乎每行一注释。限量。
Agent Attention是一种新型的注意力机制,可以平衡计算效率和表示能力。通过引入一组代理令牌(Agent Tokens),将传统的注意力模块扩展为一个四元组(Q,A,K,V),其中A代表代理令牌。这些代理令牌首先作为查询令牌Q的“代理”,从K和V中聚合信息,然后再将这些信息广播回Q。由于代理令牌的数量可以远小于查询令牌的数量,Agent Attention在保持全局上下文建模能力的同时,显著降低了计算复杂度。从理论上讲,Agent Attention将Softmax注意力的二次复杂度降低为线性复杂度,同时通过其设计巧妙地整合了Softmax注意力的高表达能力和线性注意力的高效性。
Agent Attention原理
原文Agent Attention的提出用于机器视觉领域,现有大部分结合该算法的文献也都是应用于图像识别、检测等(如结合YOLO),本代码创新性的将Agent Attention与双向门控循环单元结合,应用于时间序列预测。
BiGRU 是一种循环神经网络(RNN)的变体,结合了双向门控循环单元(GRU)。GRU 是一种轻量级的循环神经网络单元,通过引入更新门和重置门来解决传统 RNN 的梯度消失问题。BiGRU 通过同时处理序列的正向和反向信息,能够更好地捕捉序列中的时间依赖关系。
参考文献:《Agent Attention: On the Integration of Softmax and Linear Attention》《基于双聚合与代理注意力的结肠息肉分割方法研究》
代码获取方式:【原创代码分享】基于融合SPDConv-GSConv-Agent Attention的时间序列预测模型
程序名称:基于非线性二次分解的Ridge-RF-XGBoost时间序列预测
实现平台:python—Jupyter Notebook
代码简介:构建了基于线性-非线性1次分解-非线性2次分解的岭回归(Ridge)-随机森林(RF)-极端梯度提升(XGBoost)时间序列预测模型。将序列分解为线性部分、非线性部分1和非线性部分2。线性部分使用Ridge的线性拟合能力进行预测,非线性部分1使用随机森林的非线性拟合能力预测,非线性部分2使用非线性拟合能力更强的XGBoost预测,非线性部分算法使用网格搜索与交叉验证寻找最优的超参数组合。最终预测结果为三者之和。
通过将时间序列分解为线性部分和两个非线性部分,可以充分发挥不同模型的优势。线性部分由岭回归处理,非线性部分1由随机森林处理,非线性部分2由XGBoost处理。这种分解方式使得模型能够更全面地捕捉数据中的信息,提高预测精度。通过分解时间序列并分别建模,可以更精细地捕捉数据中的复杂模式。这种方法不仅提高了对周期性特征的捕捉能力,还增强了对非周期性特征的建模能力。在多个真实世界数据集上,这种分解方法实现了优于现有最先进方法的性能。
采用将时间序列数据分割成线性与非线性组件分别进行预测的方法,然后合并这两个预测结果以获得最终预测值。这样做可以最大化利用线性和非线性模型的长处。具体来说,线性模型擅长识别数据中的趋势和模式,而非线性模型则在应对复杂关系及波动方面表现出色。通过这种分解和综合的策略,不仅能提升预测准确性,还能提高模型的灵活性和稳定性。这种方法规避了单独使用一种模型时可能遇到的挑战,并且整合了两者的优点,特别适合用于含有显著趋势以及复杂变化的时间序列数据分析,从而达到更加精确和可信的预测效果。
XGBoost在时间序列预测中具有显著优势。首先,其特征工程能力强,能自动捕捉复杂的非线性关系和特征交互,无需人工手动构建这些复杂关系。此外,XGBoost能够提供特征重要性评分,帮助识别对预测结果影响较大的变量,为特征选择和模型优化提供依据。其次,XGBoost的计算性能高效。支持多线程和分布式计算,在处理大规模时间序列数据时,可显著加快训练速度。同时,XGBoost在内存使用上进行了优化,能够高效处理大规模数据,避免因数据量过大导致的计算瓶颈。这些特性使得XGBoost在时间序列预测中不仅能够提升预测精度,还能提高计算效率,适用于各种复杂的时间序列预测场景,如金融市场预测、电力需求预测、交通流量预测等。
代码获取方式:原创未发表!!基于非线性二次分解的Ridge-RF-XGBoost时间序列预测
运行结果
Optimized Random Forest parameters: {'max_depth': 10, 'min_samples_split': 10, 'n_estimators': 100}Optimized XGBoost parameters: {'learning_rate': 0.01, 'max_depth': 3, 'n_estimators': 100}