基于寄生捕食优化的BP神经网络(分类应用) - 附代码

news2025/1/12 6:12:23

基于寄生捕食优化的BP神经网络(分类应用) - 附代码

文章目录

  • 基于寄生捕食优化的BP神经网络(分类应用) - 附代码
    • 1.鸢尾花iris数据介绍
    • 2.数据集整理
    • 3.寄生捕食优化BP神经网络
      • 3.1 BP神经网络参数设置
      • 3.2 寄生捕食算法应用
    • 4.测试结果:
    • 5.Matlab代码

摘要:本文主要介绍如何用寄生捕食算法优化BP神经网络,利用鸢尾花数据,做一个简单的讲解。

1.鸢尾花iris数据介绍

本案例利用matlab公用的iris鸢尾花数据,作为测试数据,iris数据是特征为4维,类别为3个类别。数据格式如下:

特征1特征2特征3类别
单组iris数据5.32.11.21

3种类别用1,2,3表示。

2.数据集整理

iris数据总共包含150组数据,将其分为训练集105组,测试集45组。如下表所示:

训练集(组)测试集(组)总数据(组)
10545150

类别数据处理:原始数据类别用1,2,3表示为了方便神经网络训练,类别1,2,3分别用1,0,0;0,1,0;0,0,1表示。

当进行数据训练对所有输入特征数据均进行归一化处理。

3.寄生捕食优化BP神经网络

3.1 BP神经网络参数设置

通常而言,利用智能算法一般优化BP神经网络的初始权值和阈值来改善BP神经网络的性能。本案例基于iris数据,由于iris数据维度不高,采用简单的BP神经网络。神经网络参数如下:

神经网络结构

图1.神经网络结构

神经网络参数如下:

%创建神经网络
inputnum = 4;     %inputnum  输入层节点数 4维特征
hiddennum = 10;     %hiddennum  隐含层节点数
outputnum = 3;     %outputnum  隐含层节点数
net = newff( minmax(input) , [hiddennum outputnum] , { 'logsig' 'purelin' } , 'traingdx' ) ;
%设置训练参数
net.trainparam.show = 50 ;
net.trainparam.epochs = 200 ;
net.trainparam.goal = 0.01 ;
net.trainParam.lr = 0.01 ;

3.2 寄生捕食算法应用

寄生捕食算法原理请参考:https://blog.csdn.net/u011835903/article/details/120531455

寄生捕食算法的参数设置为:

popsize = 10;%种群数量
    Max_iteration = 15;%最大迭代次数
lb = -5;%权值阈值下边界
ub = 5;%权值阈值上边界
%  inputnum * hiddennum + hiddennum*outputnum 为阈值的个数
%  hiddennum + outputnum 为权值的个数
dim =  inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum ;%  inputnum * hiddennum + hiddennum*outputnum维度

这里需要注意的是,神经网络的阈值数量计算方式如下:

本网络有2层:

第一层的阈值数量为:4*10 = 40; 即inputnum * hiddennum;

第一层的权值数量为:10;即hiddennum;

第二层的阈值数量为:3*10 = 30;即hiddenum * outputnum;

第二层权值数量为:3;即outputnum;

于是可知我们优化的维度为:inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum = 83;

适应度函数值设定:

本文设置适应度函数如下:
f i t n e s s = a r g m i n ( T r a i n D a t a E r r o r R a t e + T e s t D a t a E r r o r R a t e ) fitness = argmin(TrainDataErrorRate + TestDataErrorRate) fitness=argmin(TrainDataErrorRate+TestDataErrorRate)
其中TrainDataErrorRate,TestDataErrorRate分别为训练集和测试集的错误分类率。适应度函数表明我们最终想得到的网络是在测试集和训练集上均可以得到较好结果的网络。

4.测试结果:

从寄生捕食算法的收敛曲线可以看到,整体误差是不断下降的,说明寄生捕食算法起到了优化的作用:
在这里插入图片描述
在这里插入图片描述

5.Matlab代码

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

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

相关文章

GPT绘制流程图咒语

【咒语】下面是我的一篇论文选取部分,为了让读者更好理解,我准备画一张图,请你阅读后为我设计一下这个图应该怎么画,更有说服力,更容易理解 论文片段: 多模态数据融合研究的基础在于有效的数据采集。首先&a…

DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

12-网络篇-通信过程中的网络表

1.ARP表 主机1和主机2在同一个局域网内,通过之前的章节,我们知道在通信过程中,除了要知道对方的IP地址以外,我们还要知道对方的硬件地址,也就是Mac地址。而ARP协议就是为了解决此种问题。 ARP协议的用途是为了从网络层…

操作系统备考学习 day9 (3.1.1 ~ 3.1.11)

操作系统备考学习 day9 第3章 内存3.1 内存管理概念3.1.1 内存的基本知识指令的工作原理绝对装入可重定位装入动态运行时装入从写程序到程序运行链接的三种方式 3.1.2 内存管理概念内存空间的分配与回收内存保护 3.1.3 覆盖与交换覆盖技术交换技术 3.1.4 连续分配管理方式单一连…

用批处理连续ping一个ip段

今天写这个有一个原因,就是我家的网络用了一个无线电力猫做为无线网络扩展,但忘记了无线电力猫的IP,而且我家新路由器也看不到这个电力猫,也可能有一个原因。我原来用的是192.168.1.1的华为路由器,自然我就把这个无线电…

IDEA中明明导入jar包了,依旧报ClassNotFoundException

解决办法: 1.点击IDEA右上角的设置 2.点击Project Structure... 3.点击Artifacts,点击号把包添加下就可以了

Typora 导出PDF 报错 failed to export as pdf. undefined 解决方案

情况 我想把一个很大的markdown 导出为 248页的pdf 然后就报错 failed to export as pdf. undefined 原因 : 个人感觉应该是图片太大了 格式问题之类导致的 解决 文件 -> 偏好设置 - > 导出 -> pdf -> 自定义 -> 把大小全部改为24mm (虽然图中是32 …

Linux网络编程——套接字socket

文章目录 套接字创建套接字绑定套接字侦听接收请求建立连接 sockaddrsockaddr_insockaddr_un 地址转换函数字符串转in_addr的函数inet_aton 函数inet_pton 函数inet_addr 函数 in_addr转字符串的函数inet_ntoa 函数inet_ntop 函数 总结 套接字 Socket(套接字&#…

【并发编程-1】多线程与并发设计

多线程介绍: 1、基础回顾: 线程状态: NEW-新建:创建了线程对象,还未开始执行。RUNNABLE-运行:线程对象已在java虚拟机运行,分为就绪(Ready)和运行中(Running)。BLOCKED-…

阵列信号处理_对比常规波束形成法(CBF)和Capon算法

空间谱估计 利用电磁波信号来获取目标或信源相对天线阵列的角度信息的方式,也称测向、波达方向估计(DOA)。主要应用于雷达、通信、电子对抗和侦察等领域。 发展 常规波束形成(CBF)。本质是时域傅里叶变换在空域直接…

双十一期间如何抢占流量,打造品牌爆款产品

进入10月末,也就进入了电商行业的大促流量红利期。如何提前规划大促期间,店铺流量扩张的计划,提前抢占流量,是每一个品牌方都需要考虑的问题。今天为大家分享下双十一期间如何抢占流量,打造品牌爆款产品! 一…

复制粘贴,不如Ctrl+D~预制体和变体

复制并粘贴:Ctrl D 问题 当你Ctrl D复制粘贴出几个新物体时,你这时又去修改新物体,导致所有物体不一样该怎么办? 预制体的使用 使用预设体的好处:修改预设体的文件数值,会影响其对应的物体&#xff1…

Python下载与安装进阶

一.python下载,安装与常见问题 玩转python下载与安装 下载流程:在百度搜索“python”——》打开python官网 ——》选择python版本——>另存为python安装程序手动修改环境变量修改安装目录 1. 玩转python下载与安装 流程: 识别电脑的…

“探寻服务器的无限潜能:从创意项目到在线社区,你会做什么?”

文章目录 每日一句正能量前言什么是服务器?服务器能做什么?服务器怎么用?部署创意项目,还是在线社区亦或做其他的?后记 每日一句正能量 未知的下一秒,千万不要轻言放弃。 前言 在数字化时代,服…

vs2019 libtiff安装及应用

vs2019 libtiff安装及应用 1.下载libtiff2.解压并编译3.查看编译结果4.demo测试4.1 配置项目4.2 编辑demo文件 5. 遇到的bug参考文献 1.下载libtiff 从libtiff 下载地址下载一个版本,这里选择4.0.8. 2.解压并编译 解压至目的地址: E:\cpp_lib\tiff-4.…

【软考-中级】系统集成项目管理工程师 【18 风险管理】

持续更新。。。。。。。。。。。。。。。 【第十八章】风险管理 (选择3分,偶尔案例18 分 18.1 风险概述18.1.1 风险的定义18.1.2 风险的分类18.1.3 风险的性质 18.2 项目风险管理18.3 规划风险管理18.3.1 规划风险管理的输入18.3.2 规划风险管理的工具与技术18.3.3 …

【面试经典150 | 区间】合并区间

文章目录 Tag题目来源题目解读解题思路方法一:一次遍历 其他语言python3 写在最后 Tag 【排序】【一次遍历】【数组】 题目来源 56. 合并区间 题目解读 题目意思非常明确,合并有重叠的区间。 解题思路 数据量为 1 0 4 10^4 104,基本上需…

分布式系统部署Redis

文章目录 一、单点问题二、主从模式概念配置主从结构查看主从节点断开从属关系拓扑结构主从复制原理replication复制offset偏移量 全量复制和部分复制全量复制部分复制 实时复制redis主节点无法重启 三、主从哨兵模式哨兵概念监控程序人工恢复自动恢复为什么是哨兵集合使用dock…

Vue 网络处理 - axios 异步请求的使用,请求响应拦截器

目录 一、axiox 1.1、axios 简介 1.2、axios 基本使用 1.2.1、下载核心 js 文件. 1.2.2、发送 GET 异步请求 1.2.3、发送 POST 异步请求 1.2.4、发送 GET、POST 请求最佳实践 1.3、请求响应拦截器 1.3.1、拦截器解释 1.3.2、请求拦截器的使用 1.3.3、响应拦截器的使用…

为网站配置SSL

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS…