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

蛇优化算法(Snake Optimization, SO)优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)

一、蛇优化算法优化RBF神经网络的扩散速度原理介绍

RBF神经网络的扩散速度通常与它的径向基函数的宽度参数(σ)有关,这个参数控制了函数的径向作用范围。在高斯核函数中,当σ值较大时,函数的扩散速度较快,即它的影响范围更广,对输入数据的局部变化不太敏感;而σ值较小时,函数的扩散速度较慢,影响范围较小,对输入数据的局部变化更加敏感 。

RBF神经网络通过使用高斯函数作为隐含层激活函数,实现了从低维空间到高维空间的非线性映射。这种映射是非线性的,而网络输出对可调参数(权重)是线性的,因此可以通过线性方程组直接解出权重,从而加快学习速度并避免局部极小问题 。

在RBF网络中,每个隐含层节点的激活函数都以一个中心点为中心,当输入数据点接近这些中心点时,相应的激活值会更高,远离中心点时激活值则会下降。因此,RBF网络的扩散速度可以被视为其在特征空间中对输入变化的响应速度,这与基函数的宽度参数密切相关 。

蛇优化算法(Snake Optimization, SO)在解决全局优化问题时表现出了良好的性能,可以用于对RBF神经网络的扩散速度的寻优。

二、部分代码

以5个输入,2个输出的数据集为例,采用蛇优化算法优化RBF神经网络的扩散速度,实现多数入多输出数据的预测误差最小。可以自行更改数据集

close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行%%  导入数据
res = load('data.txt');
%%  划分训练集和测试集
temp = randperm(1000);%打乱数据集序号
Train=800;%训练数据
D=5;%数据集的变量个数
P_train = res(temp(1: Train), 1 : D)';
T_train = res(temp(1: Train), D+1:end)';
M = size(P_train, 2);P_test = res(temp(Train+1: end), 1 : D)';
T_test = res(temp(Train+1: end),D+1:end)';
N = size(P_test, 2);
%%  数据归一化
[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);%% 优化算法求解RBF神经网络的最优扩散速度
pop = 20;       %种群数量
Max_iter = 30;  %最大迭代次数
lb = 0.00001;     %下边界
ub = 1;         %上边界
dim = 1;        %维度
fobj=@(X)fobj(X,p_train,t_train,p_test,t_test);
[ Best_score, Best_P,curve] = SO(pop, Max_iter, lb, ub, dim, fobj);

三、部分结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于第一个输出:
训练集数据的R2为:1
测试集数据的R2为:0.99877
训练集数据的MAE为:4.5318e-13
测试集数据的MAE为:2.414
训练集数据的MBE为:1.9725e-13
测试集数据的MBE为:0.092719
在这里插入图片描述
在这里插入图片描述
对于第二个输出:
训练集数据的R2为:1
测试集数据的R2为:0.99754
训练集数据的MAE为:2.4591e-14
测试集数据的MAE为:0.2266
训练集数据的MBE为:-9.3681e-15
测试集数据的MBE为:-0.0011076

四、完整MATLAB代码

下方名片

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 建筑楼宇电气安全与能效管理
  • 【JVM】JVM解析字节码文件过程(一)
  • Vue条件判断:v-if、v-else、v-else-if、v-show 指令
  • MySQL 升级:MySQL Server 变更详解 (8.0.36 ~ 8.0.37)
  • Fiddler不仅可以抓包,还可以做接口测试喔
  • 【ACM出版,高录用EI快检索】第七届计算机信息科学与人工智能国际学术会议(CISAI 2024,9月6-8)
  • 硬布线控制器的设计
  • MinerU pdf文档解析markdown格式、内容提取
  • 【Qt笔记】Qt建立UDP通信
  • 面试题:Rabbitmq怎么保证消息的可靠性?
  • 电脑桌面管理如何做?2024电脑桌面终极管理方法分享
  • 【安全靶场】-DC-5
  • 『基础』OS-1计算机系统概述_操作系统发展历程及它的运行环境
  • 机器人蓝牙通信绕坑
  • 【pip镜像设置】pip使用清华镜像源安装
  • 【mysql】环境安装、服务启动、密码设置
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • AWS实战 - 利用IAM对S3做访问控制
  • Git初体验
  • Javascript编码规范
  • js 实现textarea输入字数提示
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • MySQL用户中的%到底包不包括localhost?
  • Odoo domain写法及运用
  • SQLServer插入数据
  • vue中实现单选
  • 前嗅ForeSpider中数据浏览界面介绍
  • 如何利用MongoDB打造TOP榜小程序
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 用Visual Studio开发以太坊智能合约
  • ionic异常记录
  • ​香农与信息论三大定律
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • $.ajax()参数及用法
  • (0)Nginx 功能特性
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (补充)IDEA项目结构
  • (第一天)包装对象、作用域、创建对象
  • (多级缓存)缓存同步
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (数据结构)顺序表的定义
  • (小白学Java)Java简介和基本配置
  • (转) 深度模型优化性能 调参
  • (转)Linq学习笔记
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net framework 4.8 开发windows系统服务
  • .net refrector
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .NET开发者必备的11款免费工具
  • .Net语言中的StringBuilder:入门到精通
  • ;号自动换行
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——