回归预测 | 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

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-18 06:04:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-18 06:04:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-18 06:04:01       87 阅读
  4. Python语言-面向对象

    2024-01-18 06:04:01       96 阅读

热门阅读

  1. Flink学习

    2024-01-18 06:04:01       52 阅读
  2. js解构方式

    2024-01-18 06:04:01       58 阅读
  3. SSE 和 Websocket 的比较

    2024-01-18 06:04:01       53 阅读
  4. 基于STM32F103的快递箱的设计

    2024-01-18 06:04:01       49 阅读
  5. react js自定义实现状态管理

    2024-01-18 06:04:01       43 阅读
  6. codeforces A -Cut Ribbon

    2024-01-18 06:04:01       50 阅读
  7. 数据结构与算法-二叉树序列化和反序列化

    2024-01-18 06:04:01       48 阅读
  8. 无root权限安装git-lfs(linux版)

    2024-01-18 06:04:01       55 阅读
  9. sqlserver2012 跨服务器查询

    2024-01-18 06:04:01       53 阅读
  10. 【SpringBoot系列】AOP详解

    2024-01-18 06:04:01       49 阅读
  11. 解析XML字符串并存入数据库

    2024-01-18 06:04:01       52 阅读