Python实现BOA蝴蝶优化算法优化Catboost回归模型(CatBoostRegressor算法)项目实战

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

1.项目背景

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

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

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

本项目通过BOA蝴蝶优化算法优化Catboost回归模型。  

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工具的hist()方法绘制直方图: 

4.2 相关性分析

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

5.特征工程

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

关键代码如下:

5.2 数据集拆分

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

6.构建BOA蝴蝶优化算法优化Catboost回归模型

主要使用BOA蝴蝶优化算法优化Catboost回归算法,用于目标回归。 

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

最优参数:

6.2 最优参数值构建模型 

编号

模型名称

参数

1

Catboost回归模型 

depth=best_depth

2

learning_rate=best_learning_rate

7.模型评估

7.1评估指标及结果 

评估指标主要包括R方、均方误差、解释性方差、绝对误差等等。

模型名称

指标名称

指标值

测试集

Catboost回归模型  

R方

0.9902

均方误差

327.9057

解释方差分

0.9902

绝对误差

11.9727 

从上表可以看出,R方分值为0.9902,说明模型效果比较好。

关键代码如下:  

7.2 真实值与预测值对比图

从上图可以看出真实值和预测值波动基本一致,模型效果良好。  

8.结论与展望

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十分钟到底能不能讲明白ROS到底能做啥

总结 录完视频发现十分钟不能,总共花了20分钟。 提纲: 课程、竞赛、论文Linux、C、Python、Github和ROS关联性强平台-资格和ROS关联性弱速度-成绩路径规划-全局和局部全局-侧重路径长短-找一条最优(短)的路局部-侧重速度控制-用…

数据可视化-ECharts Html项目实战(10)

在之前的文章中,我们学习了如何在ECharts中编写雷达图,实现特殊效果的插入运用,函数的插入,以及多图表雷达图。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错&…

Python基于Django的微博热搜、微博舆论可视化系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

host文件nginx代理 综合理解

之前一直理解得很糙 导致遇到问题很迷糊 今天经过大佬两句话讲明白了 特此记录 host文件 首先host做了代理 也就是对浏览器的DNS寻址做了拦截 具体原理可以参照当我们在地址栏输入URL的时候浏览器发生了什么 例如127.0.0.1 www.baidu.com 将 127.0.0.1 www.baidu.com 链接自…

春游江淮|出发,上宁国“村游”去

竹川村、赤岸村打卡佳处,春花烂漫,春意盎然,胡乐镇竹川村、赤岸村的油菜花,是宁国春天不可错过的风光。等大片大片的油菜花盛放,与悠悠远山交相辉映,可以来此骑行、散步,静静欣赏美好的春日风光。 山门村 世外桃源经过奇特的“山门洞”,来到山门村,村内古木参天,在春…

Cloudshark数据包分析功能介绍

什么是CloudShark CloudShark是一种基于Web的数据包分析平台,可以认为是wiresshark的cloud版本,但是其在威胁分析等方面比Wireshark的功能强大,如下是他们的主要区别。 Wireshark VS Cloudshark Wireshark定位是一款本地开源的网络数据包分…

2024年第十四届MathorCup数学应用挑战赛B题解题思路

B题https://mbd.pub/o/bread/ZZ6Wm5dx 问题1:对于附件I(Pre_test文件夹)给定的三张甲骨文原始拓片图 片进行图像预处理,提取图像特征,建立甲骨文图像预处理模型,实现对 甲骨文图像干扰元素的初步判别和处理。 针对问题1,对于附件…

考虑预同步的虚拟同步机T型三电平逆变器并离网MATLAB仿真模型

微❤关注“电气仔推送”获得资料(专享优惠) 模型简介 三相 T 型三电平逆变器电路如图所示,逆变器主回路由三个单相 T 型逆变器组成。 直流侧输入电压为 UPV,直流侧中点电位 O 设为零电位,交流侧输出侧是三相三线制连…

Linux的学习之路:6、Linux编译器-gcc/g++使用

摘要 本文主要是说一些gcc的使用,g和gcc使用一样就没有特殊讲述。 目录 摘要 一、背景知识 二、gcc如何完成 1、预处理(进行宏替换) 2、编译(生成汇编) 3、汇编(生成机器可识别代码 4、链接(生成可执行文件或…

如何调节变阻器的电阻值?

变阻器是一种可以改变电阻值的电子元件,广泛应用于各种电子设备中。调节变阻器的电阻值可以实现对电路中电流和电压的控制,从而实现对设备的控制和调节。下面是如何调节变阻器的电阻值的方法: 了解变阻器的基本原理:变阻器主要由固…

统信UOS桌面操作系统1060上隐藏Windows磁盘

原文链接:统信UOS桌面操作系统1060上隐藏Windows磁盘 Hello,大家好啊!继之前我们讨论了如何在统信UOS桌面操作系统1060上安装双系统之后,今天我要给大家介绍的是,在这个基础上如何隐藏Windows磁盘分区。这样做可以让你…

CDN优化

一、是什么 CDN (全称 Content Delivery Network),即内容分发网络 构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降…

IT行业网络安全守护者-行云管家云堡垒机

IT行业即信息技术行业,是一个涵盖广泛的行业领域,主要涉及与信息的处理、存储、传输和应用相关的技术。对于IT行业而言,保障数据安全以及网络安全至关重要,一不小心就容易造成数据泄露事件。今天我们小编就给大家介绍一下IT行业网…

Mongodb入门--头歌实验MongoDB 文档的高级查询操作

数据库存储了大量的数据&#xff0c;当我们需要特定的数据时就要使用查询方法&#xff0c;根据一定的条件&#xff0c;筛选出我们想要的数据&#xff0c;前一章我们简单介绍了条件操作符&#xff08;<、<、>、>、!等&#xff09;&#xff0c;在这一章中我们将更全面…

【Linux学习】初识Linux指令(一)

文章目录 1.指令操作与图形化界面操作1.什么是指令操作&#xff0c;什么是图形化界面操作&#xff1f; 2.Linux下基本指令1.Linux下的复制粘贴2.Linux两个who命令3.补充知识4.pwd指令5. ls 指令6.cd 指令1.目录树2.相对路径与绝对路劲3.常用cd指令 7.tree指令8. touch指令9.sta…

从浅入深理解JAVA异常

从浅入深理解JAVA异常 一、什么是异常以及异常的分类二、异常的分类1、常见的系统错误2、常见的编译时异常3、常见的运行时异常 三、创建异常1、创建JAVA中已经存在的异常 -- throw关键字1.1 语法1.2 使用2、自定义异常&#xff08;1&#xff09;区分你要创建哪种异常&#xff…

volatile 关键字

我们先看这段代码 class MyCounter {public int flag 0; }public class ThreadDemo15 {public static void main(String[] args) {MyCounter myCounter new MyCounter();Thread t1 new Thread(() -> {while (myCounter.flag 0) {// 这个循环体咱们就空着}System.out.pr…

平板设备IP地址设置指南

在数字化时代&#xff0c;平板电脑作为便携且功能强大的设备&#xff0c;广泛应用于日常生活和工作中。为了确保平板能够正常接入网络并与其他设备进行通信&#xff0c;正确设置IP地址是至关重要的。虎观小二将为您介绍如何设置平板的IP地址&#xff0c;帮助您轻松完成网络配置…

JavaScript ECMAScript标准的与时俱进:从ES6至ES14的革新之路与关键技术特性剖析

ECMAScript&#xff08;通常缩写为ES&#xff09;是一种标准化的脚本语言规范&#xff0c;由ECMA International&#xff08;前身为European Computer Manufacturers Association&#xff0c;欧洲计算机制造商协会&#xff09;制定。自1997年发布首个版本以来&#xff0c;ECMAS…

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记13:RTC实时时钟

系列文章目录 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记01&#xff1a;赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记02&#xff1a;开发环境安装 嵌入式|蓝桥杯STM32G431&#xff08;…