一、研究背景
- 模型融合趋势:时序数据处理中,传统 LSTM 难以捕捉长距离依赖,TCN 能提取局部时序特征,Transformer 擅长全局依赖建模,三者结合可提升预测精度。
- 可解释性需求:SHAP 分析用于解释模型决策,增强模型可信度。
- 多输出回归任务:适用于多变量预测场景。
二、主要功能
- 数据预处理:读取Excel数据、归一化、划分训练/测试集。
- 构建混合模型 :
- TCN(时序卷积网络)提取时序特征
- Transformer 捕捉全局依赖
- LSTM 进一步建模时序动态
- 模型训练与评估:训练模型并计算 R²、MAE、RMSE 等指标。
- 可视化分析:网络结构图、训练曲线、预测对比图、误差分布、散点拟合图等。
- SHAP 特征重要性分析:解释各输入特征对输出的贡献。
- 新数据预测:加载新数据进行预测并保存结果。
三、算法步骤
- 数据准备:读取数据 → 归一化 → 划分训练/测试集(可选是否打乱)。
- 模型构建 :
- 输入层 → TCN 块(带残差连接)→ 位置编码 → Transformer 自注意力层 → LSTM → 全连接层 → 回归层。
- 训练设置 :
- 使用 Adam 优化器,学习率分段下降,最大训练轮数 1000。
- 训练与评估 :
- 训练网络 → 预测训练/测试集 → 反归一化 → 计算指标。
- 可视化 :
- 网络结构图、训练过程曲线、预测对比图、百分比误差图、散点拟合图、性能总结图。
- SHAP 分析:计算特征重要性并可视化。
- 新数据预测:加载新数据 → 归一化 → 预测 → 保存结果。
四、技术路线
数据 → 归一化 → TCN(时序特征)→ Transformer(全局注意力)→ LSTM(时序建模)→ 全连接 → 输出
↑ ↓
训练/测试集划分 SHAP分析
↓ ↓
训练与评估 ← 指标计算 ← 反归一化 ← 预测结果
↓
新数据预测与保存
五、公式原理(核心部分)
1. TCN 部分:
- 使用因果卷积(Causal Convolution)确保时序因果性:
yt=∑k=0K−1wkxt−d⋅k y_t = \sum_{k=0}^{K-1} w_k x_{t-d \cdot k} yt=k=0∑K−1wkxt−d⋅k- d 为膨胀因子(dilation factor)
- K 为卷积核大小
2. Transformer 自注意力:
Attention(Q,K,V)=softmax(QKTdk)V \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V
3. LSTM 单元:
ft=σ(Wf⋅[ht−1,xt]+bf)it=σ(Wi⋅[ht−1,xt]+bi)C~t=tanh(WC⋅[ht−1,xt]+bC)Ct=ft∗Ct−1+it∗C~tot=σ(Wo⋅[ht−1,xt]+bo)ht=ot∗tanh(Ct) \begin{aligned} f_t &= \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) \\ i_t &= \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) \\ \tilde{C}t &= \tanh(W_C \cdot [h{t-1}, x_t] + b_C) \\ C_t &= f_t * C_{t-1} + i_t * \tilde{C}t \\ o_t &= \sigma(W_o \cdot [h{t-1}, x_t] + b_o) \\ h_t &= o_t * \tanh(C_t) \end{aligned} ftitC~tCtotht=σ(Wf⋅[ht−1,xt]+bf)=σ(Wi⋅[ht−1,xt]+bi)=tanh(WC⋅[ht−1,xt]+bC)=ft∗Ct−1+it∗C~t=σ(Wo⋅[ht−1,xt]+bo)=ot∗tanh(Ct)
六、参数设定(关键参数)
| 参数 | 说明 | 取值 |
|---|---|---|
maxPosition |
位置编码最大长度 | 128 |
numHeads |
注意力头数 | 4 |
numKeyChannels |
键通道数 | 64 |
hiddens |
LSTM 隐藏单元数 | 64 |
numFilters |
TCN 卷积核数 | 32 |
filterSize |
卷积核大小 | 3 |
dropoutFactor |
Dropout 比例 | 0.1 |
numBlocks |
TCN 块数 | 3 |
MaxEpochs |
最大训练轮数 | 1000 |
InitialLearnRate |
初始学习率 | 0.001 |
LearnRateDropFactor |
学习率下降因子 | 0.1 |
LearnRateDropPeriod |
下降周期 | 800 |
七、运行环境
- 软件:MATLAB2024b
八、应用场景
- 多变量时间序列预测:如股票价格、气象数据、电力负荷预测。
- 回归分析任务:如房价预测、销量预测、设备寿命预测。
- 可解释性建模需求场景:需解释各输入特征对输出的影响。
- 多输出预测任务:同时预测多个相关目标变量。
总结
该代码实现了一个结构清晰、可视化丰富、功能完整 的混合深度学习回归预测系统,适用于需要高精度预测与模型可解释性的时序回归任务。





