基于指数分布优化的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.3 | 2.1 | 1.2 | 1 |
3种类别用1,2,3表示。
2.数据集整理
iris数据总共包含150组数据,将其分为训练集105组,测试集45组。如下表所示:
| 训练集(组) | 测试集(组) | 总数据(组) |
|---|---|---|
| 105 | 45 | 150 |
类别数据处理:原始数据类别用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神经网络。神经网络参数如下:

神经网络参数如下:
%创建神经网络
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/131025569
指数分布算法的参数设置为:
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.测试结果…...
Python--练习:使用while循环求1~100之间,所有偶数的和(涉及if判断是不是偶数)
案例:求1~100之间,所有偶数的和 思考: 先套用原有基础模式,之后再思考其他的。 其实就是在之前文章 Python--练习:使用while循环求1..100的和-CSDN博客 的基础上,再判断如果获取到里面的全部偶数&#…...
带温度的softmax
用pytorch写一下使用带有温度的softmax的demo import torch import torch.nn.functional as F# 定义带有温度的softmax函数 def temperature_softmax(logits, temperature1.0):return F.softmax(logits / temperature, dim-1)# 输入logits logits torch.tensor([[1.0, 2.0, 3.…...
js函数调用的方式有几种
在 JavaScript 中,函数可以通过不同的方式进行调用。以下是常见的几种函数调用方式: 函数调用:使用函数名称后跟一对小括号来调用函数,这是最基本的调用方式。 functionName(); 方法调用:函数可以作为对象的方法进行调…...
聊聊设计模式--简单工厂模式
简单工厂模式 前面也学了很多各种微服务架构的组件,包括后续的服务部署、代码管理、Docker等技术,那么作为后端人员,最重要的任务还是代码编写能力,如何让你的代码写的漂亮、易扩展,让别人一看赏心悦目,…...
Python基础教程:内置函数之字典函数的使用方法
嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 len(字典名): 返回键的个数,即字典的长度 # len(字典名): # 返回键的个数,即字典的长度dic {a:123,b:456,c:789…...
Pytorch从零开始实战06
Pytorch从零开始实战——明星识别 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——明星识别环境准备数据集模型选择开始训练模型可视化模型预测总结 环境准备 本文基于Jupyter notebook,使用Python3.8,Pytorch2.0.1c…...
RT-Thread学习笔记(三):线程管理
线程管理 线程管理相关概念什么是时间片轮转调度器锁线程运行机制线程的五种状态 动态和静态创建线程区别动态和静态创建线程优缺点RT-Thread动态线程管理函数动态创建线程动态删除线程 RT-Thread静态线程管理函数静态创建线程 线程其他操作线程启动线程延时获得当前执行的线程…...
pymysql连接Mariadb/Mysql出现错误(配置正确情况下)解决办法
场景:在kali中使用python中pymysql对Mariadb进行连接,在整个过程中配置全部正确,但是就是无法进行连接,提示结果如下: Access denied for user rootlocalhost解决办法:进入数据库中,将默认密码…...
数据仓库扫盲系列(1):数据仓库诞生原因、基本特点、和数据库的区别
数据仓库的诞生原因 随着互联网的普及,信息技术已经深入到各行各业,并逐步融入到企业的日常运营中。然而,当前企业在信息化建设过程中遇到了一些困境与挑战。 1、历史数据积存。 过去企业的业务系统往往是在较长时间内建设的,很…...
DataX-web安装部署和使用
DataX-web的环境准备 MySQL (5.5) 必选,对应客户端可以选装, Linux服务上若安装mysql的客户端可以通过部署脚本快速初始化数据库 JDK (1.8.0_xxx) 必选 DataX 必选 Python (2.x) (支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在do…...
sqlmap防御以及文件读写
一.防御 过滤 1.使用过滤函数 $email filter_var($_POST[email], FILTER_VALIDATE_EMAIL); if ($email) { // input is a valid email address } else { // input is not a valid email address 使用 filter_var() 函数和 FILTER_VALIDATE_EMAIL 过滤器来验证用户输…...
【源码】C/C++运动会计分系统 期末设计源码
文章目录 题目介绍功能源码效果展示带报告(内容) 题目介绍 使用语言: 两个版本都会发: 版本1:C语言 版本2: C 代码量: 500 题目介绍: 要求:初始化输入:N-参赛…...
Ubuntu安装Docker
卸载官方库中之前的旧版本 sudo apt-get remove docker docker-engine docker-ce docker.io更新安装包列表 sudo apt-get update安装以下包以使apt可以通过HTTPS使用存储库 sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common添…...
useReducer+createContext真的可以代替Redux吗?
概念 useReducer useReducer 是 React 提供的一个状态管理钩子,通常用于管理组件的复杂状态逻辑。它采用两个参数:reducer 函数和初始状态。Reducer 函数接受当前状态和一个操作(action),并返回一个新的状态。这有点…...
Mysql忘记登入密码找回 方法(超详细)
如果你找不到 MySQL 的安装路径,可以尝试以下几种方法: 检查环境变量:打开命令提示符,并运行以下命令: echo %PATH% 这会显示系统的环境变量。查找其中是否包含 MySQL 相关的路径,例如 C:\Program Files…...
NodeMCU ESP8266 读取按键外部输入信号详解(图文并茂)
NodeMCU ESP8266 读取按键外部输入信号教程(图文并茂) 文章目录 NodeMCU ESP8266 读取按键外部输入信号教程(图文并茂)前言按键输入常用接口pinModedigitalRead 示例代码结论 前言 ESP8266如何检测外部信号的输入,通常…...
Oracle如何插入图片数据?
1、创建表,注意:插入图片的列要定义成BLOB类型 create table image_lob(t_id varchar2(5) not null,t_image blob not null);2、创建图片目录,images为目录名 create or replace directory "images" as f:\pic\;3、创建存储过程&am…...
C++特性——inline内联函数
1. 内联函数 1.1 C语言的宏 在C语言中,我们学习了用#define定义的宏函数,例如: #define Add(x, y) ((x) (y)) //两数相加相较于函数,我们知道宏替换具有如下比较明显的优点: 性能优势: 宏在预处理阶段…...
pensieve运行的经验
1运行run_videopy时出现如下问题: cmd: Union[List[str], str], ^ SyntaxError: invalid syntax原因是EasyProcess版本与python版本不对应,解决办法可见之前这篇博客:SyntaxError: invalid syntax。 2解决完上述问题后,输…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
