|
## 基于贝叶斯Bayes算法优化CNN-LSTM长短期记忆网络的单列时间序列模型及多输入单输出回归预测模型
## 前言
前面在【MATLAB第8期】讲解了基于贝叶斯Bayes算法优化LSTM长短期记忆网络的时间序列预测模型,即单输入数据时间序列预测,见本人知乎主页。
前面在【MATLAB第14期】讲解了基于贝叶斯Bayes算法优化LSTM长短期记忆网络的多输入单输出回归预测模型思路框架,见本人知乎主页。
## 思路
本文分别使用单列时间序列数据及多输入单输出数据,进行BO-CNNLSTM预测。贝叶斯原理及内容不多介绍。
## 1.时间序列预测模型
时间序列数据:单列数据
超参数优化:有大量的超参数可供调整和优化,使用贝叶斯优化来优化CNN-LSTM参数
```bash
optimVars = [
optimizableVariable('NoFilter1',[8 64],'Type','integer') %卷积层1卷积核数量
optimizableVariable('NoFilter2',[8 64],'Type','integer') %卷积层2卷积核数量
optimizableVariable('FilterSize1',[3 16],'Type','integer') %卷积层1卷积核大小
optimizableVariable('FilterSize2',[3 16],'Type','integer') %卷积层2卷积核大小
optimizableVariable('Lag',[3 9],'Type','integer') %时间滞后阶数范围
optimizableVariable('MiniBatchSize',{'16' '32' '48' },'Type','categorical') %批处理范围选择
optimizableVariable('learningrate',[1e-5 1e-1],'Type','real',"Transform","log")];%学习率优化选择
```
贝叶斯优化次数:10
贝叶斯优化结果:(参数简化,如最大运行时间仅设置为10*60)
测试集MAE= 1.3433
测试集RMSE= 1.9390
## 2.回归预测模型
使用多输入单输出数据
80%训练 20%测试
超参数优化:有大量的超参数可供调整和优化,使用贝叶斯优化来优化CNN-LSTM参数
%% 优化CNNLSTM结构参数
```bash
optimVars = [
optimizableVariable('numHiddenUnits1',[50 200],'Type','integer')% LSTM第一层隐含层神经元数
optimizableVariable('numHiddenUnits2',[50 200],'Type','integer')% LSTM第二层隐含层神经元数
optimizableVariable('NoFilter1',[8 64],'Type','integer') %卷积层卷积核数量
optimizableVariable('FilterSize1',[3 16],'Type','integer')%卷积层卷积核大小
];```
**
## 预测结果:
- CNNLSTM训练集均方根误差(RMSE):3.2152
- CNNLSTM训练集平均绝对误差(MAE):2.5149
- CNNLSTM训练集平均相对百分误差(MAPE):5.0728%
- CNNLSTM训练集R-square决定系数(R2):0.98159
- CNNLSTM测试集均方根误差(RMSE):2.9023
- CNNLSTM测试集平均绝对误差(MAE):2.1754
- CNNLSTM测试集平均相对百分误差(MAPE):3.4288%
- CNNLSTM测试集R-square决定系数(R2):0.96609
- BO-CNNLSTM训练集均方根误差(RMSE):1.6549
- BO-CNNLSTM训练集平均绝对误差(MAE):1.2913
- BO-CNNLSTM训练集平均相对百分误差(MAPE):2.9743%
- BO-CNNLSTM训练集R-square决定系数(R2):0.99484
- BO-CNNLSTM测试集均方根误差(RMSE):2.4997
- BO-CNNLSTM测试集平均绝对误差(MAE):2.098
- BO-CNNLSTM测试集平均相对百分误差(MAPE):3.5159%
- BO-CNNLSTM测试集R-square决定系数(R2):0.98186
## 代码获取方式
【获取下载链接】
点击上方可获取下载链接 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|