回归预测 | Matlab实现MSADBO-CNN-LSTM基于改进蜣螂算法优化卷积神经网络-长短期记忆神经网络多特征回归预测
目录
- 回归预测 | Matlab实现MSADBO-CNN-LSTM基于改进蜣螂算法优化卷积神经网络-长短期记忆神经网络多特征回归预测
- 预测效果
- 基本描述
- 程序设计
- 参考资料
预测效果
基本描述
1.Matlab实现MSADBO-CNN-LSTM基于改进蜣螂优化算法-卷积神经网络-长短期记忆神经网络多特征回归预测;
2.运行环境为Matlab2021b;
3.data为数据集,excel数据,输入多个特征,输出单个变量,多变量回归预测,
main.m为主程序,运行即可,所有文件放在一个文件夹;
4.命令窗口输出R2、MSE、MAE、MAPE多指标评价;
5.优化学习率,隐藏层节点,正则化系数;
程序设计
- 完整程序和数据获取方式:私信博主回复Matlab实现MSADBO-CNN-LSTM基于改进蜣螂优化算法-卷积神经网络-长短期记忆神经网络多特征回归预测。
%% 建立模型lgraph = layerGraph(); % 建立空白网络结构tempLayers = [sequenceInputLayer([num_dim, 1, 1], "Name", "sequence")% 建立输入层,输入数据结构为[num_dim, 1, 1]sequenceFoldingLayer("Name", "seqfold")];% 建立序列折叠层lgraph = addLayers(lgraph, tempLayers);% 将上述网络结构加入空白结构中tempLayers = [convolution2dLayer([3, 1], 16, "Name", "conv_1", "Padding", "same")% 建立卷积层,卷积核大小[3, 1],16个特征图reluLayer("Name", "relu_1")tempLayers = [sequenceUnfoldingLayer("Name", "sequnfold")% 建立序列反折叠层flattenLayer("Name", "flatten")% 网络铺平层 fullyConnectedLayer(num_class, "Name", "fc")% 分类层lgraph = addLayers(lgraph, tempLayers);% 将上述网络结构加入空白结构中lgraph = connectLayers(lgraph, "seqfold/out", "conv_1"); % 折叠层输出 连接 卷积层输入lgraph = connectLayers(lgraph, "seqfold/miniBatchSize", "sequnfold/miniBatchSize");%% 参数设置options = trainingOptions('adam', ... % Adam 梯度下降算法'MaxEpochs', 500,... % 最大训练次数 'InitialLearnRate', best_lr,...% 初始学习率为0.001'L2Regularization', best_l2,... % L2正则化参数'LearnRateSchedule', 'piecewise',...% 学习率下降'LearnRateDropFactor', 0.1,...% 学习率下降因子 0.1'LearnRateDropPeriod', 400,...% 经过训练后 学习率为 0.001*0.1'Shuffle', 'every-epoch',...% 每次训练打乱数据集'ValidationPatience', Inf,... % 关闭验证'Plots', 'training-progress',...% 画出曲线'Verbose', false);%% 训练net = trainNetwork(p_train, t_train, lgraph, options);
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128690229