Python实现BOA蝴蝶优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

news2025/1/13 7:57:53

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

1.项目背景

蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算法。该算法受到了蝴蝶觅食和交配行为的启发,蝴蝶接收/感知并分析空气中的气味,以确定食物来源/交配伙伴的潜在方向。

蝴蝶利用它们的嗅觉、视觉、味觉、触觉和听觉来寻找食物和伴侣,这些感觉也有助于它们从一个地方迁徙到另一个地方,逃离捕食者并在合适的地方产卵。在所有感觉中,嗅觉是最重要的,它帮助蝴蝶寻找食物(通常是花蜜)。蝴蝶的嗅觉感受器分散在蝴蝶的身体部位,如触角、腿、触须等。这些感受器实际上是蝴蝶体表的神经细胞,被称为化学感受器。它引导蝴蝶寻找最佳的交配对象,以延续强大的遗传基因。雄性蝴蝶能够通过信息素识别雌性蝴蝶,信息素是雌性蝴蝶发出的气味分泌物,会引起特定的反应。

  通过观察,发现蝴蝶对这些来源的位置有非常准确的判断。此外,它们可以辨识出不同的香味,并感知它们的强度。蝴蝶会产生与其适应度相关的某种强度的香味,即当蝴蝶从一个位置移动到另一个位置时,它的适应度会相应地变化。当蝴蝶感觉到另一只蝴蝶在这个区域散发出更多的香味时,就会去靠近,这个阶段被称为全局搜索。另外一种情况,当蝴蝶不能感知大于它自己的香味时,它会随机移动,这个阶段称为局部搜索。

本项目通过BOA蝴蝶优化算法优化BP神经网络分类模型。    

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

编号 

变量名称

描述

1

x1

2

x2

3

x3

4

x4

5

x5

6

x6

7

x7

8

x8

9

x9

10

x10

11

y

因变量

数据详情如下(部分展示):

3.数据预处理

3.1 用Pandas工具查看数据

使用Pandas工具的head()方法查看前五行数据:

关键代码:

3.2数据缺失查看

使用Pandas工具的info()方法查看数据信息:

从上图可以看到,总共有11个变量,数据中无缺失值,共2000条数据。

关键代码:

3.3数据描述性统计

通过Pandas工具的describe()方法来查看数据的平均值、标准差、最小值、分位数、最大值。

关键代码如下:  

4.探索性数据分析

4.1 y变量柱状图

用Matplotlib工具的plot()方法绘制柱状图:

4.2 y=1样本x1变量分布直方图

用Matplotlib工具的hist()方法绘制直方图:

4.3 相关性分析

从上图中可以看到,数值越大相关性越强,正值是正相关、负值是负相关。

5.特征工程

5.1 建立特征数据和标签数据

关键代码如下:

5.2 数据集拆分

通过train_test_split()方法按照80%训练集、20%测试集进行划分,关键代码如下:

6.构建BOA蝴蝶优化算法优化BP神经网络分类模型

主要使用BOA蝴蝶优化算法优化BP神经网络分类模型算法,用于目标分类。 

6.1 BOA蝴蝶优化算法寻找最优参数值

最优参数:

6.2 最优参数值构建模型 

编号

模型名称

参数

1

BP神经网络分类模型

units=best_units

2

epochs=best_epochs

6.3 最优参数模型摘要信息

6.4 最优参数模型网络结构

6.5 最优参数模型训练集测试集损失和准确率曲线图

7.模型评估

7.1评估指标及结果 

评估指标主要包括准确率、查准率、查全率、F1分值等等。

模型名称

指标名称

指标值

测试集

BP神经网络分类模型 

准确率

0.8950

查准率

0.9324

查全率

0.8733

F1分值

0.9019

从上表可以看出,F1分值为0.9019,说明模型效果良好。

关键代码如下:

7.2 分类报告

从上图可以看出,分类为0的F1分值为0.89;分类为1的F1分值为0.90。

7.3 混淆矩阵

从上图可以看出,实际为0预测不为0的 有14个样本;实际为1预测不为1的 有28个样本,整体预测准确率良好。

8.结论与展望

综上所述,本文采用了BOA蝴蝶优化算法寻找BP神经网络分类模型算法的最优参数值来构建分类模型,最终证明了我们提出的模型效果良好。此模型可用于日常产品的预测。

# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 获取方式一:
 
# 项目实战合集导航:
 
https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
 
# 获取方式二:

链接:https://pan.baidu.com/s/1OmFLMS_LknHhTlX-vCc89Q 
提取码:30o9

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

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

相关文章

*地宫取宝c++

题目 输入样例1: 2 2 2 1 2 2 1输出样例1: 2输入样例2: 2 3 2 1 2 3 2 1 5输出样例2: 14 思路 题目说从入口开始,只能向右或向下行走到达右下角,类似“摘花生”这道题的模型。题目又说只有当格子里的宝…

Linux编程4.5 网络编程-套接字(Socket)

1、简介 Socket(套接字)是一种通讯机制,它包含一整套的调用接口和数据结构的定义,它给应用进程提供了使用如TCP/UDP等网络协议进行网络通讯的手段。 Linux中的网络编程通过Socket接口实现,Socket既是一种特殊的IO,提供对应的文件…

JS向指定位置添加元素

内容参考来源 splice方法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。 //在数组指定位置插入 var fruits ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2, 0, "Lemon", "…

号外!全球首位AI软件工程师:Devin 来了

Cognition 实验室发布全球首位AI软件工程师 :Devin 目前Devin已经成功通过了顶尖 AI 公司的实际工程面试,并在 Upwork 上完成了真实工作。 Devin具有完全自主能力,可以通过使用自己的 Shell、代码编辑器和网络浏览器解决工程任务。 Devin是什…

非凡的壁炉

下一代卓越的壁炉是高端、现代、环保和 100% 安全的壁炉。它们融合了源自当代先进技术的创新功能。离子壁炉冷焰和自动酒精壁炉为设计师和室内建筑师提供了非凡的装饰工具。它们允许以令人难以置信的各种风格创造非凡的壁炉。如今,火摆脱了传统的束缚,在…

深度学习技巧总结

1、监控GPU使用情况 pip install nvitopnvitop -m fullhttps://zhuanlan.zhihu.com/p/577533593 2、本地拉取服务器上tensorboard数据并进行可视化显示 https://blog.csdn.net/Thebest_jack/article/details/125609849 3、服务器打不开pycharm软件 这个是已经有一个软件在运…

[剪藏] - 由哇哈哈和农夫山泉所想到的

哇哈哈和农夫山泉的缠斗最近冒出来一个有趣的点:营销大于内容的胜利。 具体来说是这样的:农夫山泉很多年前做广告,说纯净水没有矿物质,长期喝是不利于人体健康的。农夫还做了个营销的对比实验,大概是用矿泉水养水仙花&…

Word中解决插入脚注导致的分页位置错误问题

先放一个截图: 上面的截图中,样式为标题3的段落“四、固执的念头”前插入了连续型分节符,并且该分节符的样式为正文,前后的正文段落中有脚注,结果在分页时,标题3段落“四、固执的念头”后的正文段落自动进入…

使用docker-compose部署MySQL三主六从半同步集群(MMM架构)

文章目录 🔊博主介绍🥤本文内容部署MySQL三主六从半同步集群一主二从同步集群规划需要安装docker和docker-compose命令形式安装安装docker安装docker-compose 宝塔面板形式安装 部署node1节点的master1docker-compose.yaml文件my.cnf文件授权启动 部署no…

SAM分割 图片bbox提示任意数量目标输出mask

前提条件:labelimg打标签得到bbox 1.代码 import torchfrom segment_anything import SamPredictor, sam_model_registry import cv2 import numpy as np import os import glob import xml.etree.ElementTree as ETcheckpoint "./weight/sam_vit_h_4b8939.…

【Leetcode每日一刷】顺/逆时针旋转矩阵 |48. 旋转图像、矩阵的螺旋遍历 |54. 螺旋矩阵

一、48. 旋转图像 1.1:题目 48. 旋转图像 1.2:解题思路 题型:顺/逆时针旋转矩阵; ❗❗核心思想/ 关键:不可暴力模拟,先镜像,后水平翻转 这题的意思很简单,就是让我们把矩阵顺时…

LabVIEW电磁阀特性测控系统

LabVIEW电磁阀特性测控系统 电磁阀作为自动化工程中的重要组成部分,其性能直接影响系统的稳定性和可靠性。设计一种基于LabVIEW的电磁阀特性测控系统,通过高精度数据采集和智能化控制技术,实现电磁阀流阻、响应时间及脉冲特性的准确测量和分…

吴恩达深度学习笔记:神经网络的编程基础2.9-2.14

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第二周:神经网络的编程基础 (Basics of Neural Network programming)2.9 逻辑回归中的梯度下降(Logistic Regression Gradient Descent) 第一门课&#xff…

vscode 向下复制当前行(即visual studio 中的Ctrl + D)功能快捷键

参考:https://blog.csdn.net/haihui1996/article/details/87937912 打开vscode左下角键盘快捷键设置,找到copy line down,即可查看当前默认快捷键为“shift Alt ↓” 双击快捷键,输入自己想要的快捷组合,如CtrlD,然…

Java Web程序的部署

写在前:要想将我们写好的项目让其他人可以访问,仅仅完成代码是不能直接运行的。这就需要在Linux系统上搭建Java web程序的运行环境。这里以我所做的博客系统为例,进行搭建。 1. 准备依赖 (1)JVM(JDK&#…

windows中的出站和入站规则

一、规则介绍   规则生效的前提是防火墙处于开启状态。 windows系统默认的规则:默认阻止入站连接,默认允许出站连接。也就是说,凡是入站连接,任何程序和端口都要在防火墙上配置入站规则,否则都会被禁止。 查看方式&a…

非光滑非凸规划

目录 一,非凸函数的近端梯度下降 1,凸函数的近端梯度下降 2,非凸函数的近端梯度下降 一,非凸函数的近端梯度下降 1,凸函数的近端梯度下降 参考近端梯度下降 2,非凸函数的近端梯度下降

Docker/Linux Mysql 远程连接不上,user 的host为localhost

如果 alter user root% identified with mysql_native_password by 123456; 返回的是:Query OK, 0 rows affected (0.00 sec) 而不是:ERROR 1396 (HY000): Operation ALTER USER failed for root% 那么你只要在执行 flush privileges; 就可以了。 …

数字化经济的前沿:深入了解 Web3 的商业模式

随着区块链技术的迅速发展,Web3作为一种新型的互联网范式,正逐渐引起人们的关注。它不仅仅是一种技术革新,更是一种商业模式和价值观的转变。本文将深入探讨Web3的商业模式,以及它对数字化经济的影响。 1. 理解Web3的商业模式 We…

Docker 安装部署 ORACLE 11g数据库

Docker 安装部署 ORACLE 11g数据库 背景: ​ 最新在开发数据中台数据接入模块,其中设计很多数据类型,包括ORACLE ,因为是测试使用,想着快速部署测试,于是使用Docker 部署 Oracle , 生产环境不建议使用Doc…