2024年新算法-鹦鹉优化器(PO)优化BP神经网络回归预测

2024年新算法-鹦鹉优化器(PO)优化BP神经网络回归预测

亮点:

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

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

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

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

一、鹦鹉优化器(Parrot optimizer, PO)

摘要:随机优化方法作为一种有效的优化方法,在解决复杂优化问题中发挥着重要作用。本文介绍了鹦鹉优化器(PO),一种有效的优化方法,其灵感来自经过训练的Pyrrhura Molinae鹦鹉的关键行为。通过定性分析和综合实验,展示了Parrot优化器在处理各种优化问题时的独特特性。性能评估包括在35个函数上对提出的PO进行基准测试,包括IEEE CEC 2022测试集中的经典案例和问题,并将其与8个流行算法进行比较。结果生动地突出了PO在探索和利用特性方面的竞争优势。此外,通过参数敏感性实验探讨了所提出的PO在不同配置下的适应性。开发的PO应用于工程设计问题时,证明了其有效性和优越性。为了进一步将评估扩展到实际应用中,我们将PO应用于疾病诊断和医学图像分割问题,这些问题在医学领域具有高度相关性和重要意义。实验结果表明,PO算法优于现有的一些算法,是一种很有发展前景和竞争力的算法。

参考文献:Parrot optimizer: Algorithm and applications to medical problems

Doi: 10.1016/j.compbiomed.2024.108064

二、BP神经网络

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

三、PO-BP神经网络

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

四、实验结果

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

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

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

PO收敛曲线如下:

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

所有图片:

预测结果对比图:

预测误差对比图:

所有评价指标:

部分代码如下:

% BestF: Best value in a certain iteration
% WorstF: Worst value in a certain iteration
% GBestF: Global best fitness value
% AveF: Average value in each iteration
if (max(size(ub)) == 1)ub = ub .* ones(1, dim);lb = lb .* ones(1, dim);
end
%% Initialization
X0 = initialization(N, dim, ub, lb); % Initialization
X = X0;
% Compute initial fitness values
fitness = zeros(1, N);
for i = 1:Nfitness(i) = fobj(X(i, :),hiddennum, net, p_train, t_train);
end
[fitness, index] = sort(fitness); % sort
GBestF = fitness(1); % Global best fitness value
fitness1=GBestF;
AveF = mean(fitness);
for i = 1:NX(i, :) = X0(index(i), :);
end
curve = zeros(1, Max_iter);
%avg_fitness_curve = zeros(1, Max_iter);
GBestX = X(1, :); % Global best position
X_new = X;
search_history = zeros(N, Max_iter, dim);
fitness_history = zeros(N, Max_iter);
%% Start search

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

可做回归/分类预测

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

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

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

五、完整代码获取

点击获取代码icon-default.png?t=N7T8https://mbd.pub/o/bread/ZpWUlZ5x

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

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

相关文章

抖音 小程序 获取手机号 报错 getPhoneNumber:fail auth deny

这是因为 当前小程序没有获取 手机号的 权限 此能力仅支持小程序通过试运营期后可用,默认获取权限,无需申请; https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/guide/open-capabilities/acquire-phone-number-acqu…

Redis入门到通关之Redis网络模型-用户空间和内核态空间

文章目录 欢迎来到 请回答1024 的博客 🍓🍓🍓欢迎来到 请回答1024的博客 关于博主: 我是 请回答1024,一个追求数学与计算的边界、时间与空间的平衡,0与1的延伸的后端开发者。 博客特色: 在我的…

DevOps(十三)Jenkins之Selenium插件配置

一、Selenium Grid详细介绍 Selenium Grid 是 Selenium 测试套件的一部分,主要用于通过并行执行测试来提高测试执行的速度和效率。它允许您在多个环境(不同的浏览器和操作系统)上同时运行测试,从而帮助在开发过程中快速发现跨浏览…

Github 2024-04-25Go开源项目日报Top10

根据Github Trendings的统计,今日(2024-04-25统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Vue项目1Go编程语言:构建简单、可靠和高效的软件 创建周期:3474 天开发语言:Go协议类型:BSD 3-Clause “New” or “Revised” Lic…

spark3.0.0单机模式安装

注:此安装教程基于hadoop3集群版本 下载安装包 下载spark3.0.0版本,hadoop和spark版本要对应,否则会不兼容 用xftp上传Linux虚拟机,上传目录/bigdata(可修改) 解压 tar -zxvf /bigdata/spark-3.0.0-bin-h…

背包问题汇总

本文涉及知识点 动态规划汇总 状态机dp 01背包 有n件物品,体积分别是v[i],价值分别是w[i],有个包的容积是bv。如何选择物品使得,在总体积不超过vb的前提下,让总价值最大。 动态规划的状态表示 dp[i][j] 表示处理完…

CentOS 7.9.2009 中 Docker 使用 GPU

一、安装nvidia驱动 1.1,查看显卡驱动 # 查看显卡型号 lspci | grep -i nvidia 1.2,进入 PCI devices ,输入上一步查询到的 2204 1.3,进入 官方驱动 | NVIDIA,查询 Geforce RTX 3090 驱动并下载 1.4,禁用…

冯老师降维打击申论课

冯老师降维打击申论课,以其独到的见解和精湛的教学技巧,将复杂的申论知识变得简单易懂。通过深入浅出的讲解,帮助考生迅速掌握申论精髓,轻松应对考试。课程内容丰富实用,深受考生好评,是备考申论的不二之选…

【SQL代理中转注入】对DVWA登录界面username字段实施注入

一、实验过程 步骤0:注释掉相关username防护,截图如下: 以DVWA为攻击目标,将login.php中第21、22行注释掉 步骤1:源码分析,截图如下: 如此可知,首先需要通过token验证,然…

CTFHub(web sql)(四)

Cookie注入 Cookie 注入的原理也和其他注入一样,只不过是将提交的参数已 Cookie 方式提交,而一般的注入是使用 GET 或者 POST 方式提交,GET 方式提交就是直接在网址后面加上需要注入的语句,POST 方式则是通过表单,GET …

feign整合sentinel做降级知识点

1&#xff0c;配置依赖 <!-- Feign远程调用依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency> <!--sentinel--><dependency>…

【数据结构(邓俊辉)学习笔记】向量04——有序向量

文章目录 0.概述1.比较器2.有序性甄别3.唯一化3.1低效算法3.1.1实现3.1.2 复杂度3.1.3 改进思路3.2 高效算法3.2.1 实现3.2.2 复杂度 4.查找4.1统一接口4.2 语义定义4.3 二分查找4.3.1 原理4.3.2 实现4.3.3 复杂度4.3.4 查找长度4.3.5 不足 4.4 Fibonacci查找4.4.1 思路及原理4…

【03-掌握Scikit-learn:深入机器学习的实用技术】

文章目录 前言数据预处理缺失值处理数据缩放特征选择模型训练参数调整模型评估总结前言 经过了对Python和Scikit-learn的基础安装及简单应用,我们现在将更深入地探究Scikit-learn的实用技术,以进一步提升我们的数据科学技能。在本文中,我们将涵盖数据预处理、特征选择、模型…

Qt中的 tableView 设置 二进制 十六进制 序号表头

二 进制序号 因为QTableView的垂直表头并不支持使用委托来自定义。 相反&#xff0c;可以通过将自定义的QWidget作为QHeaderView的标签来实现这一目标。 代码&#xff1a; #include <QApplication> #include <QMainWindow> #include <QVBoxLayout> #include …

企业微信hook接口协议,根据手机号搜索联系人

根据手机号搜索联系人 参数名必选类型说明uuid是String每个实例的唯一标识&#xff0c;根据uuid操作具体企业微信 请求示例 {"uuid":"3240fde0-45e2-48c0-90e8-cb098d0ebe43","phoneNumber":"1357xxxx" } 返回示例 {"data&q…

opencv可视化图片-----c++

可视化图片 #include <opencv2/opencv.hpp> #include <opencv2/core.hpp> #include <filesystem>// 将数据类型转换为字符串 std::string opencvTool::type2str(int type) {std::string r;uchar depth type & CV_MAT_DEPTH_MASK;uchar chans 1 (typ…

rust是否可以用于8051单片机开发工作?

目前&#xff0c;Rust 在嵌入式领域的发展主要集中在一些常见的架构上&#xff0c;如ARM Cortex-M&#xff08;包括STM32系列&#xff09;、RISC-V等。我这里有一套嵌入式入门教程&#xff0c;不仅包含了详细的视频 讲解&#xff0c;项目实战。如果你渴望学习嵌入式&#xff0c…

递归、搜索与回溯算法:FloodFill 算法

例题一 算法思路&#xff1a; 可以利⽤「深搜」或者「宽搜」&#xff0c;遍历到与该点相连的所有「像素相同的点」&#xff0c;然后将其修改成指定的像素即可。 全局变量&#xff1a; int dx[4] { 0,0,1,-1 }, dy[4] { 1,-1,0,0 }; int m, n; int precolor;//记录原先的颜色…

debian和ubuntu的核心系统和系统命令的区别

Debian和Ubuntu虽然有很深的渊源&#xff0c;都是基于Debian的发行版&#xff0c;但它们在核心系统和系统命令上还是有一些差别的。以下是一些主要的不同之处&#xff1a; 1. 发布周期&#xff1a; - Debian&#xff1a; Debian项目采用滚动发布模型&#xff0c;持续更新&a…

CCF区块链会议--Middleware 2024 截止5.24 附录用率

会议名称&#xff1a;Middleware CCF等级&#xff1a;CCF B类会议 类别&#xff1a;软件工程/系统软件/程序设计语言 录用率&#xff1a;2022年录用率38%&#xff08;8/21&#xff09; Topics of Interest The Middleware conference seeks original submissions of resear…