首页 > 编程语言 >多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输入多输出预测

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

时间:2024-09-14 18:24:59浏览次数:11  
标签:输出 train inputnum hiddennum BP 输入


多输入多输出 | 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);

标签:输出,train,inputnum,hiddennum,BP,输入
From: https://blog.51cto.com/u_15735367/12018164

相关文章

  • SEGGER_RTT配合EasyLogger进行日志输出
    1.什么是日志?日志(Logging)是一种记录程序运行时发生的事件、状态变化、错误消息或其他重要信息的方法。它对于开发者来说是一个宝贵的工具,用于调试程序、监控运行时行为以及诊断问题。我们之前printf输出信息就是最简单、常用的一种日志形式2.什么是RTT全称为RealTimeTrans......
  • nohup 输入日志,将磁盘撑满了,nohup 不输出日志
    JavaSprintbootjar项目启动、停止脚本nohupjava-jar${APP_NAME}--spring.profiles.active=${active}>/dev/null2>&1&后台运行不输出任何信息:nohup./test>/dev/null2>&1&后台运行输出日志:nohup./test>/tmp/1.log2>&1&>/dev/n......
  • 一些不错的LLM 结构化输出库
    结构化输出对于LLM是一个比较重要的功能,以下是一个开源不错的工具,可以方便使用简单说明outlines以及instructor是很不错的工具对于基于api的推荐使用instructor,kor以及langchain集成比较好guardrails也算是一个不错的工具提供了结构化输出的能力,但是核心是数据的校验能力参考......
  • ubuntu20.04 ssh远程开启vnc,并显示hdmi输出界面
    要通过SSH远程连接到Ubuntu20.04电脑的桌面,并显示当前屏幕的内容,可以使用x11vnc工具。以下是详细的步骤:安装x11vnc:首先,确保你已经通过SSH连接到目标电脑,并运行以下命令来安装x11vnc:sudoaptupdatesudoaptinstallx11vnc设置VNC密码(可选):为了安全起见,你可以设......
  • C#窗体应用中打开控制输出内容
    窗体程序中打开控制台输出内容namespaceWinForms中打开控制台{publicpartialclassForm1:Form{/////////////以下控制台调用相关代码///////////////////////////[System.Runtime.InteropServices.DllImport("kernel32.dll",SetLastErr......
  • PbootCMS增加webp和mov等上传文件类型的方法
    在PBootCMS中增加webp和mov等上传文件类型的方法主要包括两个步骤:修改全局上传配置和修改UEditor编辑器的配置。以下是详细的步骤和示例代码:1.修改全局上传配置操作步骤打开配置文件:打开/config/config.php文件。修改上传配置:在大约第30行左右,找到upload配置数组,并......
  • C++一元多项式解析、计算、输出(数据结构作业),可直接运行
    //Copyright(c)[email protected]#include<bits/stdc++.h>classPolynomial{private:std::unordered_map<int,int>data_;voidzero_value_optimization(){for(autoiter=data_.begin();iter!=data_.end();){......
  • 从零开始一步一步搭建 Vue3 + Webpack5 项目脚手架指南
    **......
  • VS2022中文字符输出为乱码的解决
    一、问题vs2022输出中文时,出现乱码现象二、解决方案 把文件的字符编码格式改为utf-8格式选择工具,点击自定义选择命令,点击添加命令 选择文件,点击高级保存选项,然后点击确定 点击高级保存选项 选择utf-8编码格式,然后点击确定 三、问题解决 ......
  • [独家原创]基于(开普勒)KOA-Transformer-LSTM多特征分类预测【24年新算法】 (多输入单
    [独家原创]基于(开普勒)KOA-Transformer-LSTM多特征分类预测【24年新算法】(多输入单输出)Matlab代码你先用你就是创新!!!(鳑鲏鱼)KOA优化的超参数为:隐藏层节点数、正则化系数、初始化学习率1.程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel!2.Transformer作为......