当前位置: 首页 > news >正文

多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输入多输出预测

多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输入多输出预测

目录

    • 多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输入多输出预测
      • 预测效果
      • 基本介绍
      • 程序设计
      • 往期精彩
      • 参考资料

预测效果

在这里插入图片描述

基本介绍

多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输入多输出预测
1.data为数据集,10个输入特征,3个输出变量。
2.main.m为主程序文件。
3.命令窗口输出MBE、MAE和R2,可在下载区获取数据和程序内容。

程序设计

  • 完整程序和数据下载方式资源处下载多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输入多输出预测。

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train,0,1);
p_test = mapminmax('apply',P_test,ps_input);[t_train, ps_output] = mapminmax(T_train,0,1);
t_test = mapminmax('apply',T_test,ps_output);%% 节点个数
inputnum  = size(p_train, 1); % 输入层节点数
hiddennum = 15;                % 隐藏层节点数
outputnum = size(t_train, 1); % 输出层节点数%% 构建网络
net = newff(p_train, t_train, hiddennum);%% 设置训练参数
net.trainParam.epochs     = 50;      % 训练次数
net.trainParam.goal       = 1e-4;     % 目标误差
net.trainParam.lr         = 0.01;     % 学习率
net.trainParam.showWindow = 0;        % 关闭窗口%%  参数设置
fun = @getObjValue;                                 % 目标函数
dim = inputnum * hiddennum + hiddennum * outputnum + ...hiddennum + outputnum;                          % 优化参数个数
lb  = -1 * ones(1, dim);                            % 优化参数目标下限
ub  =  1 * ones(1, dim);                            % 优化参数目标上限
pop = 20;                                            % 数量
Max_iteration = 20;                                 % 最大迭代次数   %% 优化算法
[Best_score,Best_pos,curve] = SSA(pop, Max_iteration, lb, ub, dim, fun); %% 把最优初始阀值权值赋予网络预测
w1 = Best_pos(1 : inputnum * hiddennum);
B1 = Best_pos(inputnum * hiddennum + 1 : inputnum * hiddennum + hiddennum);
w2 = Best_pos(inputnum * hiddennum + hiddennum + 1 : inputnum * hiddennum + hiddennum + hiddennum*outputnum);
B2 = Best_pos(inputnum * hiddennum + hiddennum + hiddennum * outputnum + 1 : ...inputnum * hiddennum + hiddennum + hiddennum * outputnum + outputnum);

往期精彩

MATLAB实现RBF径向基神经网络多输入多输出预测
MATLAB实现BP神经网络多输入多输出预测
MATLAB实现DNN神经网络多输入多输出预测

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/116377961
[2] https://blog.csdn.net/kjm13182345320/article/details/127931217
[3] https://blog.csdn.net/kjm13182345320/article/details/127894261

相关文章:

  • PROTOTYPICAL II - The Practice of FPGA Prototyping for SoC Design
  • 身份证实名认证接口如何用C#实现
  • Ubuntu上安装与配置MySQL‌
  • 基于PHP的丽江旅游管理系统
  • TextCNN:文本卷积神经网络模型
  • leetcode-581. 最短无序连续子数组
  • MySQL高级功能-窗口函数
  • Vue.js中computed的使用方法
  • 前端开发深入了解webpack
  • 【中秋月饼系列】2024年立体月饼新鲜出炉----python画月饼(1)附完整代码
  • 【Unity学习心得】如何使用Unity制作“饥荒”风格的俯视角2.5D游戏
  • 【随手笔记】
  • 安宝特案例 | AR如何大幅提升IC封装厂检测效率?
  • 安卓显示驱动
  • Unreal Engine——AI生成高精度的虚拟人物和环境(虚拟世界构建、电影场景生成)(一)
  • Google 是如何开发 Web 框架的
  • 03Go 类型总结
  • java8-模拟hadoop
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Mybatis初体验
  • python 装饰器(一)
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 记一次和乔布斯合作最难忘的经历
  • 使用 @font-face
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 学习HTTP相关知识笔记
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​比特币大跌的 2 个原因
  • # C++之functional库用法整理
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (152)时序收敛--->(02)时序收敛二
  • (2)MFC+openGL单文档框架glFrame
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (9)目标检测_SSD的原理
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (SERIES12)DM性能优化
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (转)ORM
  • (转)菜鸟学数据库(三)——存储过程
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .dwp和.webpart的区别
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .net 程序发生了一个不可捕获的异常
  • .NET 使用配置文件
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式