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

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

基于海洋捕食者优化的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/118468662

海洋捕食者算法的参数设置为:

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代码

相关文章:

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

基于海洋捕食者优化的BP神经网络(分类应用) - 附代码 文章目录 基于海洋捕食者优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.海洋捕食者优化BP神经网络3.1 BP神经网络参数设置3.2 海洋捕食者算法应用 4…...

Lift, Splat, Shoot图像BEV安装与模型详解

1 前言 计算机视觉算法通常使用图像是作为输入并输出预测的结果,但是对结果所在的坐标系却并不关心,例如图像分类、图像分割、图像检测等任务中,输出的结果均在原始的图像坐标系中。因此这种范式不能很好的与自动驾驶契合。 在自动驾驶中,多个相机传感器的数据一起作为输…...

MySQL简介

数据库管理系统 1、关系型数据库管理系统: Oracle:Oracle是一种商业级关系型数据库管理系统,支持高可用性、高安全性以及广泛的企业级应用需求。SQL Server:SQL Server是Microsoft开发的企业级关系型数据库管理系统,广泛应用于Windows环境下的软件开发。MySQL:MySQL是一…...

php代码优化---本人的例子

直接上货: 1:数据统计 店铺数量、提现金额、收益金额、用户数量 旧: // //店铺// $storey db( store )->whereTime( addtime, yesterday )->count();//昨天// $stored db( store )->whereTime( addtime, d )->count();//今天…...

EMC Unity存储(VNXe) service Mode和Normal Mode的一些说明

本文介绍下EMC unity存储设备(也包含VNXe存储设备)的两种工作模式: Service mode:也叫做rescue mode,存储OS工作不正常或者有其他故障,就会进入这个模式,无法对外提供服务Normal mode&#xff…...

基于全景运动感知的飞行视觉脑关节神经网络全方位碰撞检测

https:/doi.org/10.1155/2023/5784720 摘要: 生物系统有大量的视觉运动检测神经元,其中一些神经元可以优先对特定的视觉区域做出反应。然而,关于如何使用它们来开发用于全向碰撞检测的神经网络模型,很少有人做过工作。为此&#…...

Java 继承与实现

一、继承(extends) 1.1 继承概念 继承是面向对象的基本特征,它允许子类继承父类的特征和行为,以提高代码的复用率和维护性等。下面一张图生动地展示了继承和类之间的关系: 继承图 上图中,“动物”、“食草…...

Unity 3D基础——计算两个物体之间的距离

1.在场景中新建两个 Cube 立方体,在 Scene 视图中将两个 Cude的位置错开。 2.新建 C# 脚本 Distance.cs(写完记得保存) using System.Collections; using System.Collections.Generic; using UnityEngine;public class Distance : MonoBehav…...

css常见问题处理

文章目录 1&#xff1a;禁止文字被复制粘贴1.1 Css 处理1.2 Js 处理 2&#xff1a;元素垂直水平居中2.1:方案一2.2 方案二2.3 方案三2.4 方案四2.5 方案五 1&#xff1a;禁止文字被复制粘贴 1.1 Css 处理 <div class"text">我不可以复制信息</div> <…...

蓝桥杯(迷宫,C++)

输入&#xff1a; 思路&#xff1a; 1、注意输入用字符串。 2、采用广度搜素的方法来求解。 3、因为最后要求字典序最小且D<L<R<U,所以在遍历四个方向的时候&#xff0c; 先向下&#xff0c;再向左、右&#xff0c;最后向上。 #include<iostream> #include…...

Python爬虫selenium安装谷歌驱动解决办法

驱动下载链接&#xff1a;CNPM Binaries Mirror (npmmirror.com) 谷歌浏览器老版本下载&#xff1a;Google Chrome 64bit Windows版_chrome浏览器,chrome插件,谷歌浏览器下载,谈笑有鸿儒 (chromedownloads.net) 驱动下载后解压缩直接放入python相应文件夹&#xff1a; 最后&a…...

生信教程:使用拓扑加权探索基因组进化(3)

使用 Twisst 探索整个基因组的进化关系的拓扑加权教程[1]。 简介 拓扑加权是量化不一定是单系群之间关系的一种方法。它通过考虑更简单的“分类单元拓扑”并量化与每个分类单元拓扑匹配的子树的比例&#xff0c;提供了复杂谱系的摘要。我们用来计算权重的方法称为 Twisst&#…...

React js原生 详解 HTML 拖放 API(鼠标拖放功能)

最近碰到了个需求&#xff0c;大概就是要通过可视化拖拽的方式配置一个冰柜&#xff0c;需要把预设好的冰柜内部架子模板一个个拖到冰箱内。一开始的想法是用鼠标事件&#xff08;mousedown、mouseup等&#xff09;那一套去实现&#xff0c;能实现但是过程过于复杂&#xff0c;…...

LiveMedia视频中间件如何与第三方系统实现事件录像关联

一、平台简介 LiveMedia视频中间件是支持部署到本地服务器或者云服务器的纯软件服务&#xff0c;也提供服务器、GPU一体机全包服务&#xff0c;提供视频设备管理、无插件、跨平台的实时视频、历史回放、语音对讲、设备控制等基础功能&#xff0c;支持视频协议有海康、大华私有协…...

机器学习-有监督算法-决策树和支持向量机

目录 决策树ID3C4.5CART 支持向量积 决策树 训练&#xff1a;构造树&#xff0c;测试&#xff1a;从模型从上往下走一遍。建树方法&#xff1a;ID3&#xff0c;C4.5&#xff0c;CART ID3 以信息论为基础&#xff0c;以信息增益为衡量标准熵越小&#xff0c;混乱程度越小&…...

luffy项目之后台项目搭建、目录调整、封装日志、全局异常、Response、数据库连接

luffy后台项目创建 在虚拟环境中创建luffy项目安装django&#xff1a;pip install django3.1.12命令创建项目django-admin startproject luffy_api也可以pycharm创建项目&#xff0c;创建项目时选则已经创建好的虚拟环境即可 luffy项目目录调整 """ ├── …...

C++标准模板(STL)- 类型支持 (数值极限,min_exponent10,max_exponent,max_exponent10)

数值极限 std::numeric_limits 定义于头文件 <limits> 定义于头文件 <limits> template< class T > class numeric_limits; numeric_limits 类模板提供查询各种算术类型属性的标准化方式&#xff08;例如 int 类型的最大可能值是 std::numeric_limits&l…...

linux 服务器类型Apache配置https访问

一&#xff1a;查看服务器类型&#xff0c;下载相应的SSL证书 命令&#xff1a;netstat -anp | grep :80 httpd是Apache超文本传输协议(HTTP)服务器的主程序&#xff0c;所以下载Apache证书 二&#xff1a;将证书解压后复制到服务器上 三个文件&#xff1a;xxx.key xxx_publ…...

langchain 加载各种格式文件读取方法

参考&#xff1a;https://python.langchain.com/docs/modules/data_connection/document_loaders/ https://github.com/thomas-yanxin/LangChain-ChatGLM-Webui/blob/master/app.py 代码 可以支持pdf、md、doc、txt等格式 from langchain.document_loaders import Unstruct…...

飞花令游戏(Python)

飞花令是古时候人们经常玩一种“行酒令”的游戏&#xff0c;是中国古代酒令之一&#xff0c;属雅令。“飞花”一词则出自唐代诗人韩翃《寒食》中 春城无处不飞花 一句。行飞花令时选用诗和词&#xff0c;也可用曲&#xff0c;但选择的句子一般不超过7个字。 在《中国诗词大会》…...

忍者像素绘卷效果实测:同一Prompt下不同步数对像素锐度影响对比分析

忍者像素绘卷效果实测&#xff1a;同一Prompt下不同步数对像素锐度影响对比分析 1. 测试背景与目的 忍者像素绘卷作为一款基于Z-Image-Turbo深度优化的图像生成工具&#xff0c;其独特的16-Bit复古游戏美学风格吸引了大量创作者。在实际使用中&#xff0c;我们发现"描绘…...

轻量级跨平台桌面应用开发:Tauri零门槛实战指南

轻量级跨平台桌面应用开发&#xff1a;Tauri零门槛实战指南 【免费下载链接】tauri Build smaller, faster, and more secure desktop and mobile applications with a web frontend. 项目地址: https://gitcode.com/GitHub_Trending/ta/tauri 在桌面应用开发领域&#…...

别只盯着错误页!从一次线上事故复盘:优化微信小程序web-view体验的5个隐藏细节

从线上事故到极致体验&#xff1a;微信小程序web-view优化的5个实战细节 那天凌晨3点&#xff0c;我被一阵急促的告警声惊醒。监控系统显示&#xff0c;公司核心小程序的H5活动页加载成功率从99.8%暴跌至62%。这个承载着双十一预售活动的页面&#xff0c;每小时流失着数百万潜在…...

小模型大能力:DeepSeek-R1-Distill-Qwen-1.5B在边缘计算中的应用

小模型大能力&#xff1a;DeepSeek-R1-Distill-Qwen-1.5B在边缘计算中的应用 1. 引言&#xff1a;边缘计算时代的轻量级AI解决方案 在AI技术快速发展的今天&#xff0c;大模型已经展现出惊人的能力。然而&#xff0c;当我们把目光投向边缘计算场景时&#xff0c;传统的百亿参…...

从FasterRCNN到自定义检测器:SimpleDet扩展开发完全手册

从FasterRCNN到自定义检测器&#xff1a;SimpleDet扩展开发完全手册 【免费下载链接】simpledet A Simple and Versatile Framework for Object Detection and Instance Recognition 项目地址: https://gitcode.com/gh_mirrors/si/simpledet SimpleDet是一个简单且多功能…...

Landsat8温度反演结果不准?可能是这5个参数没搞对(ENVI实战经验分享)

Landsat8温度反演精度提升&#xff1a;5个关键参数优化与ENVI实战解析 当你在深夜盯着屏幕上那些明显偏离预期的温度反演结果时&#xff0c;是否曾怀疑过ENVI软件出了问题&#xff1f;事实上&#xff0c;90%的温度反演误差都源于几个关键参数的设置不当。作为一位经历过数十个遥…...

开源剧本AI落地实操:像素剧本圣殿+Dual-GPU并行推理完整教程

开源剧本AI落地实操&#xff1a;像素剧本圣殿Dual-GPU并行推理完整教程 1. 项目概览 像素剧本圣殿&#xff08;Pixel Script Temple&#xff09;是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这个开源项目将先进的AI推理能力与独特的8-Bit复古美学相结合&…...

告别重复造轮子:用快马AI一键生成高复用性imToken集成代码模块

告别重复造轮子&#xff1a;用快马AI一键生成高复用性imToken集成代码模块 开发涉及钱包集成的DApp时&#xff0c;最让人头疼的就是那些重复性的基础代码。每次新项目都要重新写一遍连接钱包、处理授权、监听网络切换的逻辑&#xff0c;不仅浪费时间&#xff0c;还容易引入安全…...

深耕纪实创作 AVG Media 以专业能力赋能纪录片产业发展

在全球内容产业快速迭代的当下&#xff0c;纪录片凭借真实的叙事力量、深厚的人文价值与多元的传播场景&#xff0c;成为内容领域中兼具艺术价值与商业价值的重要载体。国内纪录片行业历经多年发展&#xff0c;形成了多元主体参与、创作方向细分、国际合作深化的行业格局&#…...

让按钮并排布局的艺术

在前端开发中,我们经常需要面对如何让一系列的按钮并排显示而不堆叠在一起的问题。今天,我将带你深入了解如何使用CSS的Flexbox布局来解决这个问题,并通过一个具体的例子展示如何实现这一效果。 问题背景 假设我们有一个页面,包含多个按钮,这些按钮默认情况下是垂直堆叠…...