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

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

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

文章目录

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

摘要:本文主要介绍如何用JAYA算法优化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.JAYA优化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 JAYA算法应用

JAYA算法原理请参考:https://blog.csdn.net/u011835903/article/details/115572600

JAYA算法的参数设置为:

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.测试结果:

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

5.Matlab代码

相关文章:

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

基于JAYA优化的BP神经网络(分类应用) - 附代码 文章目录 基于JAYA优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.JAYA优化BP神经网络3.1 BP神经网络参数设置3.2 JAYA算法应用 4.测试结果:5.M…...

JavaScript进阶(二十六):ES各版本特性详解

文章目录 一、ECMAScript简介二、ES6 (ES2015)三、ES7 (ES2016)四、ES8 (ES2017)五、ES9 (ES2018)六、ES10 (ES2019)七、ES11 (ES2020)八、ES12 (ES2021)九、拓展阅读 一、ECMAScript简介 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,Europ…...

排序算法-快速排序法(QuickSort)

排序算法-快速排序法(QuickSort) 1、说明 快速排序法是由C.A.R.Hoare提出来的。快速排序法又称分割交换排序法,是目前公认的最佳排序法,也是使用分而治之(Divide and Conquer)的方式,会先在数…...

Python 简介

一、Python 简介 Python 是著名的“龟叔” Guido van Rossum 在 1989 年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。牛人就是牛人,为了打发无聊时间竟然写了一个这么牛皮的编程语言。 现在,全世界差不多有 600 多种编程语言&am…...

grafana api创建dashboard 记录

文章目录 json model导入申请api key创建dashboard删除dashboard json model导入 直接在ui通过json model 导入,开发自己用还好,但对非开发人员不太友好,故考虑通过api后台自动创建 api doc : https://grafana.com/docs/grafana/v9.3/devel…...

局域网上IP多播与IP单播关于MAC地址的区别

IP单播进行到局域网上的时候: 网际层使用IP地址进行寻址,各路由器收到IP数据报后,根据其首部中的目的IP地址的网络号部分,基于路由表进行查表转发。 查表转发的结果可指明IP数据报的下一跳路由器的IP地址,但无法指明…...

三数之和[中等]

优质博文:IT-BLOG-CN 一、题目 给你一个整数数组nums,判断是否存在三元组[nums[i], nums[j], nums[k]]满足i ! j、i ! k且j ! k,同时还满足nums[i] nums[j] nums[k] 0。请你返回所有和为0且不重复的三元组。 注意:答案中不可以…...

基于天牛须优化的BP神经网络(分类应用) - 附代码

基于天牛须优化的BP神经网络(分类应用) - 附代码 文章目录 基于天牛须优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.天牛须优化BP神经网络3.1 BP神经网络参数设置3.2 天牛须算法应用 4.测试结果&#x…...

渗透波菜网站

免责声明 本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利&#xff0c…...

Spring Boot:Dao层-实例介绍

目录 Dao层的作用Dao层的特点与 Service 层和 Controller 层的关系实例介绍MenuDaoOperatorLogDaoRoleDaoUserDao四个文件的共同点引用的包使用Repository注解继承JpaRepository接口接口的实体类的主键类型使用 Query()注解 Dao层的作用 负责与数据库进行交互,主要…...

接口测试入门:深入理解接口测试!

很多人会谈论接口测试。到底什么是接口测试?如何进行接口测试?这篇文章会帮到你。 一、前端和后端 在谈论接口测试之前,让我们先明确前端和后端这两个概念。 前端是我们在网页或移动应用程序中看到的页面,它由 HTML 和 CSS 编写…...

Redis微服务架构

Redis微服务架构 缓存设计 缓存穿透 缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,通常出于容错的考虑,如果从存储层查不到数据则不写入缓层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失去…...

【C++】 局部对象,引用返回

1、new 关键字 会在堆内申请空间,如果仅仅是普通调用构造函数,不会在堆内开辟空间。 2、函数调用会形成栈帧,进行压栈操作,函数调用结束,会进行弹栈。 函数内的局部对象,会随着弹栈,而被销毁(…...

线性代数中涉及到的matlab命令-第二章:矩阵及其运算

目录 1,矩阵定义 2,矩阵的运算 3,方阵的行列式和伴随矩阵 4,矩阵的逆 5,克莱默法则 6,矩阵分块 1,矩阵定义 矩阵与行列式的区别: (1)形式上行列式…...

计算机毕业设计选什么题目好?springboot 美食推荐系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…...

爆肝整理,Jmeter接口性能测试-跨线程调用变量实操(超详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、Jmeter中线程运…...

Maven导入程序包jakarta.servlet,但显示不存在

使用前提:(Tomcat10版本)已知tomcat10版本之后,使用jakart.servlet。而tomcat9以及之前使用javax.servlet。 问题描述:在maven仓库有导入了Jakarta程序包,但是界面仍然显示是javax。(下图&…...

es6(二)——常用es6说明

ES6的系列文章目录 es6(一)——var和let和const的区别 文章目录 ES6的系列文章目录一、变量的结构赋值1.数组的结构赋值2.对象的结构赋值 二、模板字符串三、扩展运算符1.字符串的使用2.数组的使用 四、箭头函数1.普通函数的定义2.箭头函数的定义3.箭头…...

经典垃圾回收器

1.各垃圾回收器之间的配合使用关系 2.垃圾回收器的种类 2.1 Serial收集器(默认新生代收集器) Serial收集器是历史最悠久的收集器,曾经是新生代收集器的唯一选择,它是一个单线程工作的收集器,其“单线程”的意义不仅仅…...

台达DOP-B07S410触摸屏出现HMI no response无法上传的解决办法

台达DOP-B07S410触摸屏出现HMI no response无法上传的解决办法 台达触摸屏(B07S410)在上载程序时(显示No response from HMI)我以前的电脑是WIN7的,从来没出现过这样的问题,现在换成win10的,怎么都不行,(USB显示是一个大容量存储)换一台电脑(win10)有些行,有些不行…...

MidScene:让AI成为你的自动化协作者 副标题:无需编程的多平台智能操作解决方案

MidScene:让AI成为你的自动化协作者 副标题:无需编程的多平台智能操作解决方案 【免费下载链接】midscene Let AI be your browser operator. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在数字化时代,重复性操作和…...

CYBER-VISION零号协议企业级AI Agent构建与部署指南

CYBER-VISION零号协议企业级AI Agent构建与部署指南 最近几年,AI Agent这个概念越来越火。你可能听过很多关于它的讨论,但真要自己动手从零开始搭建一个能在企业里稳定运行的智能体,是不是感觉有点无从下手?别担心,这…...

智能家居系统部署终极指南:5分钟搞定全流程配置

智能家居系统部署终极指南:5分钟搞定全流程配置 【免费下载链接】operating-system :beginner: Home Assistant Operating System 项目地址: https://gitcode.com/gh_mirrors/op/operating-system Home Assistant Operating System(原HassOS&…...

Comsol瓦斯抽采:深入探索复杂的地下奥秘

comsol瓦斯抽采 该案例涉及不同抽采数学模型理论 不同渗透率模型、有效应力分布媒体变形情况、瓦斯抽采量瓦斯压力分布 涵盖不同地应力工况对比 有数个详细视频 视频涉及理论分析及推导、模型建立及案例操作过程在煤矿开采领域,瓦斯抽采是一项至关重要的技术&#x…...

知识图谱入门第一步:用SpringBoot+HanLP快速构建你的中文实体识别与关系抽取Demo

知识图谱实战:基于SpringBoot与HanLP的中文实体关系抽取系统构建指南 在人工智能与大数据技术蓬勃发展的今天,知识图谱作为结构化知识的重要载体,正在智能搜索、推荐系统、金融风控等领域展现出巨大价值。但对于许多刚接触这一领域的开发者而…...

Qwen2.5-72B-GPTQ-Int4惊艳效果:128K上下文长文档摘要与重点提取

Qwen2.5-72B-GPTQ-Int4惊艳效果:128K上下文长文档摘要与重点提取 1. 模型概述与核心能力 1.1 Qwen2.5系列模型简介 Qwen2.5是通义千问大模型系列的最新版本,提供了从0.5B到72B不同参数规模的预训练和指令调优模型。相比前代Qwen2,这个版本…...

RMBG-2.0在远程办公中的应用:Zoom虚拟背景实时抠像插件开发指南

RMBG-2.0在远程办公中的应用:Zoom虚拟背景实时抠像插件开发指南 远程办公已经成为许多人的日常,视频会议更是其中的核心环节。你是否厌倦了千篇一律的虚拟背景图片?或者因为摄像头背景杂乱而不敢开启视频?今天,我们将…...

【技术解析】MapReduce:大规模集群上的高效数据处理框架

1. MapReduce框架的核心思想 第一次听说MapReduce时,我正被一个TB级日志分析任务折磨得焦头烂额。传统单机处理需要几十个小时,而当我用上这个框架后,同样任务在200台机器上仅用23分钟就完成了。这种化腐朽为神奇的体验,让我彻底理…...

揭秘百度技术栈:逆向分析与前沿趋势

技术栈逆向分析基础逆向工程概念与法律边界 常见技术栈识别方法(如Header分析、JS特征、框架指纹) 百度前端技术栈特征(如Baidu-AlloyTeam、San框架)百度搜索前端技术架构页面渲染模式分析(SSR/CSR混合策略&#xff09…...

FlowState Lab参数调优实战:如何获得理想的模拟精度与速度

FlowState Lab参数调优实战:如何获得理想的模拟精度与速度 1. 为什么参数调优如此重要 在工程仿真领域,我们常常面临一个经典难题:精度与速度的权衡。FlowState Lab作为一款强大的流体动力学仿真工具,其参数设置直接影响着模拟结…...