2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测

2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测

 亮点:

输出多个评价指标:R2,RMSE,MSE,MAPE和MAE

满足需求,分开运行和对比的都有对应的主函数:main_BP, main_SBOA, main_BPvsBP_SBOA,并且详细中文注释

方便快捷:替换excel数据即可运行自己的数据集

出图丰富:不仅有预测结果对比,还有预测误差的可视化

一. 秘书鸟优化算法(Secretary bird optimization algorithm, SBOA)

摘要:受秘书鸟在自然环境中的生存行为启发,提出一种新的基于种群的元启发式算法——秘书鸟优化算法(SBOA)。秘书鸟的生存包括持续猎食和躲避捕食者的追捕。这些信息对于提出一种新的元启发式算法至关重要,该算法利用秘书鸟的生存能力来解决现实世界的优化问题。该算法的探索阶段模拟秘书鸟捕食蛇,而利用阶段模拟它们逃离捕食者。在此阶段,秘书鸟类会观察环境,并选择最合适的方式到达安全的栖息地。这两个阶段在满足终止准则的前提下反复迭代,以找到优化问题的最优解。为了验证SBOA的性能,从收敛速度、收敛行为等方面进行了实验评估。此外,将SBOA与15种先进算法在CEC-2017和CEC-2022测试集上进行了比较。测试结果表明,SBOA在求解质量、收敛速度和稳定性方面均表现出了优异的性能。最后,利用SBOA求解12个约束工程设计问题,对无人机进行三维航迹规划。结果表明,与对比优化器相比,所提出的SBOA可以以更快的速度找到更好的解决方案,展示了其在解决现实世界优化问题方面的巨大潜力。

参考文献:Secretary bird optimization algorithm: a new metaheuristic for solving global optimization problems

Doi: 10.1007/s10462-024-10729-y

二、BP神经网络

在今天的数字化时代,BP神经网络(反向传播神经网络)成为了机器学习和人工智能领域的一项重要技术。这种网络模型通过模仿人脑的处理方式,能够学习并解决复杂的非线性问题,是许多现代AI应用的基础。BP神经网络通过其多层结构处理信息,每一层由多个神经元组成,神经元之间通过“权重”和“偏置”参数相连接。这些参数在网络的训练初期被随机初始化,以引入必要的随机性,帮助网络有效避开局部最优解,探索全局最优解。训练过程中,网络通过输入样本进行前向传播,计算输出误差,然后通过反向传播算法调整权重和偏置,逐步减少误差,优化模型性能。这一过程不断重复,直至网络达到预期的准确性。BP神经网络的强大功能使其在回归/分类、图像识别、语音处理、自然语言处理等多个领域得到广泛应用。随着技术的不断进步,BP神经网络仍将在智能化探索中扮演重要角色,推动科技创新的边界不断拓展。

三、SBOA-BP神经网络

在追求神经网络最优性能的过程中,参数优化扮演着核心角色。传统的梯度下降法虽广泛应用于网络训练,但在某些复杂的回归预测任务中,它们常受限于慢速收敛和陷入局部最优。引入基于秘书鸟方法的优化器(SBOA),我们提供了一种高效的替代方案,特别适合处理具有复杂数据问题。通过建立目标函数,对神经网络的权重和偏置进行优化,得到更好的模型。

四、实验结果

数据集使用的是波士顿房价数据集,可以直接替换数据运行自己的数据集:

点击mian_BP运行结果,并且输出评价指标R2,RMSE,MSE,MAPE和MAE:

点击main_SBOA运行结果如下,并且输出评价指标R2,RMSE,MSE,MAPE和MAE:

SBOA收敛曲线如下:

点击mainBPvsBPSBOA运行结果,并且输出评价指标R2,RMSE,MSE,MAPE和MAE:

所有图片:

预测结果对比图:

预测误差对比图:

所有评价指标:

部分代码如下:

warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
%  导入数据
data = xlsread('回归预测_BostonHousing.xlsx');
% 计算数据集行数和列数
[num_rows, num_columns] = size(data);
%  划分训练集和测试集
temp = randperm(num_rows); % 打乱数据集
num_train = round(0.8*num_rows); % 百分之80作为训练集
P_train = data(temp(1: num_train), 1: num_columns-1)';
T_train = data(temp(1: num_train), num_columns)';
M = size(P_train, 2);
P_test = data(temp(num_train: end), 1: num_columns-1)';
T_test = data(temp(num_train: end), num_columns)';
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);
%  节点个数
inputnum  = size(p_train, 1);  % 输入层节点数
hiddennum = 5;                 % 隐藏层节点数
outputnum = size(t_train,1);   % 输出层节点数
%  建立网络
net = newff(p_train, t_train, hiddennum);
%  设置训练参数
net.trainParam.epochs     = 1000;      % 训练次数
net.trainParam.goal       = 1e-6;      % 目标误差
net.trainParam.lr         = 0.01;      % 学习率
net.trainParam.showWindow = 0;         % 关闭窗口

五、完整代码获取

2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测icon-default.png?t=N7T8https://mbd.pub/o/bread/ZpaUmZdv

原创改进算法添加shudongyouma,可使用迭代次数、评估次数,可以改进经典的,先进的算法,所有结果和图一键运行出来。

可做回归/分类预测

论文、SCI、EI、核心、学报、普刊、会议、专利、软著等均可提供辅导。

目前改进海洋捕食者、雪融和小龙虾已售,绝不二次销售。

部分理论来源于网络,如有侵权,请联系删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 excel 文件导出

//文件导出 在index.ts 中 export function downloadHandle(url: string,params?:object, filename?: string, method: string GET){ try { downloadLoadingInstance ElLoading.service({ text: "正在生成下载数据,请稍候", background: "rgba…

【计算机视觉 Mamba】MambaOut: Do We Really Need Mamba for Vision?

MambaOut: Do We Really Need Mamba for Vision? 在视觉任务上我们需要Mamba吗? 论文地址 代码地址 知乎解读:王牌飞行员申请出战! 知乎解读:Mamba 模型解读 (一):MambaOut:在视觉任务中,我们真的需要 …

Tessy学习系列(一):软件测试的概念介绍与常见的测试策略

相关内容参考自《软件测试的艺术》 一、软件测试的概念 所谓软件测试,就是一个过程或一系列过程.用来确认计算机代码完成了其应该完成的功能不执行其不该有的操作。软件应当是可预测且稳定的,不会给用户带来意外惊奇。 软件测试的作用主要体…

Langchain-Chatchat之pdf转markdown格式

文章目录 背景开发环境loader文本解析步骤markdown格式的文本为什么选择markdown格式测试markdown格式提取表格原pdf表格markdown格式的表格 测试markdown格式的知识库运行项目修改文件加载器loader 其他问题运行项目报错查看系统当前的max_user_watches修改sysctl.conf配置 图…

AWS迁移与传输之AMS/MGN

AWS Application Migration Service(AWS Application Migration Service简称为AWS MGN,MGN是migration的缩写。)是一项全面的迁移服务,旨在帮助企业将其本地服务器和虚拟机迁移到云端,包括AWS和VMware Cloud on AWS。 …

OrangePi AIpro初体验:开启嵌入式开发之旅

概述 随着物联网和智能设备时代的到来,单板电脑因其独特的优势成为创新项目和教育实践的重要工具。在众多单板电脑中,香橙派以其出色的性能和亲民的价格,十分吸引博主这初涉嵌入式开发的新手。博主有幸被CSDN邀请对OrangePi AIpro进行测评。…

Netty-选择器-监听

归档 GitHub: Netty-选择器-监听 介绍 参考 NioEventLoop 类结构:基础类介绍-NioEventLoop 主要逻辑为:死循环监听 selector总结: 创建的线程是 FastThreadLocalThread 实例 原理 io.netty.channel.nio.NioEventLoop /*** NIO 事件轮循 …

vivado设置Vscode为默认编辑器

D:\vscode\Microsoft VS Code\Code.exe -g [file name]:[line number]

鸿蒙ArkUI-X跨平台开发:【资源分类与访问】

资源分类与访问 应用开发过程中,经常需要用到颜色、字体、间距、图片等资源,在不同的设备或配置中,这些资源的值可能不同。 应用资源:借助资源文件能力,开发者在应用中自定义资源,自行管理这些资源在不同…

话术巧妙分隔沟通效果更佳看看这个小技巧

客服回复客户咨询,如果遇到比较复杂的问题,经常会有大段的文字回复,用聊天宝的分段符功能,在需要分段的地方点击右上角的“插入分隔符”,就可以在指定位置分段,实现多段发送的目的。 前言 客服回复客户咨询…

干冰清洗机的清洗原理及应用

干冰清洗机的清洗原理及应用可以详细阐述如下: 一、清洗原理 干冰清洗机的清洗原理主要基于干冰的低温冷冻作用。干冰在常温下会迅速升华,吸收大量的热量,使周围的温度迅速降低。当干冰颗粒通过特殊的干冰清洗机喷射到清洗物体表面时&#…

系统架构设计师【第1章】: 绪论 (核心总结)

文章目录 1.1 系统架构概述1.1.1 系统架构的定义及发展历程1.1.2 软件架构的常用分类及建模方法1.1.3 软件架构的应用场景1.1.4 软件架构的发展未来 1.2 系统架构设计师概述1.2.1 架构设计师的定义、职责和任务1.2.2 架构设计师应具备的专业素质1.2.3 架构设计师的知识…

Java入门基础学习笔记45——String使用的注意事项

String使用时的注意事项: 1)String对象的内容不可改变,被称为不可变字符串对象。 Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are im…

C++代码使用ClangCL编译注意事项

遇到cmake指定模板类工程使用msvc的clang编译器编译代码,代码变量出现与预期不符的问题; 如下: clangcl将实现放到头文件里则不会出现这样的情况; 最后按照pcl的模板类写法则解决这个问题;

前端常见的页面自适应布局方案

流式布局 使用百分比单位等单位来表示长度和宽度&#xff0c;这样在整体的长度和宽度变化的时候&#xff0c;里面的内容也会发生变化。 使用 % 直接使用百分比&#xff0c;在页面宽度变化的时候会对应放大缩小。 <!DOCTYPE html> <html lang"en"><he…

vue3 RouterLink路由query传参

vue route query传参 一、传参页面,需要传id、title、content三个参数 <ul> <li v-for"news in newsList" :key"news.id"> <!--/news/detail--> <RouterLink :to"{ path:/news/deta…

[SCTF2019]Who is he

unity 游戏&#xff0c;直接输入字符串 直接修改 if 判断&#xff0c;看能不能直接输出flag 修改了程序逻辑&#xff0c;但还是输出了 明明已经把这个 if 删了 不知道为什么还会输出这串字符 应该程序还有什么引入吧&#xff0c;看 wp 应该先查一下程序的动态链接库 DLL 是…

瓦罗兰特账号怎么注册 瓦罗兰特延迟高用什么加速器

《瓦罗兰特》&#xff08;Valorant&#xff09;是由拳头游戏&#xff08;Riot Games&#xff09;开发并发行的一款免费的多人在线第一人称射击游戏&#xff08;FPS&#xff09;&#xff0c;它结合了传统的硬核射击机制与英雄角色的能力系统&#xff0c;为玩家提供了独特的竞技体…

【加密与解密(第四版)】第十七章笔记

第十七章 软件保护技术 17.1 防范算法求逆 17.2 抵御静态分析 反汇编算法&#xff1a;线性扫描&#xff08;无法正确地将代码和数据分开&#xff09;、递归进行 巧妙构造代码和数据&#xff0c;在指令流中插入很多“数据垃圾"&#xff0c;干扰反汇编软件的判断&#xf…

为什么要学习c++?

你可能在想&#xff0c;“C&#xff1f;那不是上个时代的产物吗&#xff1f;” 哎呀&#xff0c;可别小看了这位“老将”&#xff0c;它在21世纪的科技舞台上依旧光芒万丈&#xff0c;是许多尖端技术不可或缺的基石&#xff01; 1. 无可替代 c源于c语言&#xff0c;它贴近于硬…