一、研究背景
该代码实现了一个基于贝叶斯优化(BO)的卷积神经网络(CNN)与双向长短时记忆网络(BiLSTM)混合模型,用于多输出回归预测任务,旨在通过深度学习模型自动提取特征并捕捉时序依赖,结合贝叶斯优化自动调参,提升模型预测精度与泛化能力。
二、主要功能
- 数据预处理:包括归一化、打乱、训练/测试集划分、数据格式转换(适应 CNN 输入)。
- 贝叶斯超参数优化:自动优化 BiLSTM 单元数、初始学习率、L2 正则化系数。
- CNN-BiLSTM 混合模型构建与训练:
- CNN 层用于局部特征提取。
- BiLSTM 层用于捕捉时序前后依赖。
- 全连接层输出多变量预测。
- 模型评估与可视化:
- 预测结果对比图。
- 误差分布图、箱线图、累积分布图。
- 各输出指标对比(R²、MAE、RMSE、MAPE 等)。
- 最优参数输出与模型结构展示。
三、算法步骤
- 数据准备:
- 导入 Excel 数据(
data.xlsx)。 - 划分训练集与测试集(70% 训练)。
- 归一化处理(
mapminmax)。
- 导入 Excel 数据(
- 贝叶斯优化:
- 调用
BOFunction作为目标函数。 - 优化参数范围:
NumOfUnits、InitialLearnRate、L2Regularization。
- 调用
- 模型构建:
- 输入层 → 序列折叠 → 卷积层(2层)→ 激活层 → 序列展开 → 铺平 → BiLSTM → 全连接 → 回归输出。
- 模型训练:
- 使用 Adam 优化器、学习率动态衰减。
- 预测与反归一化。
- 评估与绘图:
- 各输出变量分别评估。
- 整体误差分析。
- 最优参数展示。
四、技术路线
数据 → 归一化 → 贝叶斯优化 → CNN特征提取 → BiLSTM时序建模 → 全连接输出 → 评估- CNN 部分:卷积层 + ReLU 激活,提取输入序列的局部特征。
- BiLSTM 部分:双向 LSTM,捕捉前后时序依赖。
- 贝叶斯优化:基于高斯过程,寻找最优超参数组合。
五、公式原理(简要)
CNN 卷积操作:
Y=f(W∗X+b) Y = f(W * X + b)Y=f(W∗X+b)
其中 (*) 表示卷积,(f) 为 ReLU 激活函数。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 \cdot C_{t-1} + i_t \cdot \tilde{C}_t \\ o_t &= \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) \\ h_t &= o_t \cdot \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)
BiLSTM 为双向计算,同时考虑前向与后向信息。贝叶斯优化:
基于高斯过程回归构建目标函数(验证误差)的代理模型,通过采集函数(如 EI)选择下一个评估点。
六、参数设定
| 参数 | 范围/设定值 | 说明 |
|---|---|---|
NumOfUnits | [10, 50] | BiLSTM 单元数 |
InitialLearnRate | [1e-3, 1] | 初始学习率(对数尺度) |
L2Regularization | [1e-10, 1e-2] | L2 正则化系数(对数尺度) |
MaxEpochs | 100(训练时) | 最大训练轮数 |
MiniBatchSize | 64 | 批处理大小 |
LearnRateDropFactor | 0.1 | 学习率下降因子 |
LearnRateDropPeriod | 50 | 学习率下降周期 |
七、运行环境
- 软件环境:MATLAB(建议 R2019b 或更高版本)
- 数据格式:Excel 文件(
data.xlsx),最后一列为输出变量。
八、应用场景
- 多变量时间序列预测:如气象预测(温度、湿度、风速)、股票多指标预测。
- 工业过程监控:如生产参数(温度、压力、流量)的实时预测与异常检测。
- 能源管理:如电力负荷、光伏出力、风电功率多步预测。
- 环境科学:如水质多参数预测(PH、COD、氨氮浓度)。
- 交通预测:如多路段车流量、速度、拥堵指数预测。