Python实现FA萤火虫优化算法优化XGBoost回归模型(XGBRegressor算法)项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。


1.项目背景
萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , 作为最新的群智能优化算法之一,该算法具有更好的收敛速度和收敛精度,且易于工程实现等优点。
本项目通过FA萤火虫优化算法寻找最优的参数值来优化XGBoost回归模型。
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()方法绘制直方图:

从上图可以看到,y变量主要集中在-400~400之间。
4.2 相关性分析

从上图中可以看到,数值越大相关性越强,正值是正相关、负值是负相关。
5.特征工程
5.1 建立特征数据和标签数据
关键代码如下:

5.2 数据集拆分
通过train_test_split()方法按照80%训练集、20%测试集进行划分,关键代码如下:
![]()
6.构建FA萤火虫优化算法优化XGBoost回归模型
主要使用FA萤火虫优化算法优化XGBoost回归算法,用于目标回归。
6.1 FA萤火虫优化算法寻找的最优参数
最优参数:
6.2 最优参数值构建模型
| 编号 | 模型名称 | 参数 |
| 1 | XGBoost回归模型 | n_estimators=best_n_estimators |
| 2 | learning_rate=best_learning_rate |
7.模型评估
7.1 评估指标及结果
评估指标主要包括可解释方差值、平均绝对误差、均方误差、R方值等等。
| 模型名称 | 指标名称 | 指标值 |
| 测试集 | ||
| XGBoost回归模型 | R方 | 0.9292 |
| 均方误差 | 2779.288 | |
| 可解释方差值 | 0.9292 | |
| 平均绝对误差 | 41.0782 | |
从上表可以看出,R方0.9292,说明模型效果较好。
关键代码如下:

7.2 真实值与预测值对比图

从上图可以看出真实值和预测值波动基本一致,模型拟合效果良好。
8.结论与展望
综上所述,本文采用了FA萤火虫优化算法寻找XGBoost回归算法的最优参数值来构建回归模型,最终证明了我们提出的模型效果良好。此模型可用于日常产品的预测。
# 本次机器学习项目实战所需的资料,项目资源如下:# 项目说明:链接:https://pan.baidu.com/s/1KQVwGT7dhYMpsgDEFQVoFA
提取码:upub
更多项目实战,详见机器学习项目实战合集列表:
机器学习项目实战合集列表_机器学习实战项目_胖哥真不错的博客-CSDN博客
相关文章:
Python实现FA萤火虫优化算法优化XGBoost回归模型(XGBRegressor算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …...
SCAUoj综合性实验
Last One ! 文章目录 1109 综合实验:文件操作与字符处理总结 1109 综合实验:文件操作与字符处理 时间限制:4000MS 代码长度限制:10KB 提交次数:6265 通过次数:1646 题型: 填空题 语言: GCC Description 在当前目录中存在文件名为"case1.in"&…...
智加科技获全国首张重卡无人驾驶开放道路测试牌照
2023年12月1日,智加科技获得苏州市智能网联汽车无人化测试牌照。该牌照也是江苏省及国内首张无人重卡开放高速公路全路段全场景全息路网(S17苏台高速)道路测试牌照。 该重卡无人驾驶开放道路测试牌照,经由苏州市智能网联汽车联席小…...
LLM大语言模型(一):ChatGLM3-6B本地部署
目录 前言 本机环境 ChatGLM3代码库下载 模型文件下载 修改为从本地模型文件启动 启动模型网页版对话demo 超参数设置 GPU资源使用情况 (网页对话非常流畅) 前言 LLM大语言模型工程化,在本地搭建一套开源的LLM,方便后续的…...
chatgpt prompt提示词
chatgpt的接口是一个标准的http请求,请求的url为 POST https://api.openai.com/v1/chat/completions 官方的接口文档地址为:https://platform.openai.com/docs/api-reference/chat/create Example request curl https://api.openai.com/v1/chat/comp…...
【PyTorch】数据集
文章目录 1. 创建数据集1.1. 直接继承Dataset类1.2. 使用TensorDataset类 2. 数据集的划分3. 加载数据集4. 将数据转移到GPU 1. 创建数据集 主要是将数据集读入内存,并用Dataset类封装。 1.1. 直接继承Dataset类 必须要重写__getitem__方法,用于根据索…...
oops-framework框架 之 本地存储(五)
引擎: CocosCreator 3.8.0 环境: Mac Gitee: oops-game-kit 注: 作者dgflash的oops-framework框架QQ群: 628575875 简介 在CocosCreator中,本地存储主要使用sys.localStorage 接口,通过 key-value的格式进…...
编程常见的问题
在现代社会中,编程已经成为一项非常重要的技能。随着科技的不断发展和普及,计算机已经渗透到我们生活的方方面面,从个人电脑、手机到智能家居、自动驾驶等。编程作为计算机科学的基础,为我们提供了解决问题和创造新事物的工具和方…...
针对Arrays.asList的坑,可以有哪些处理措施
上文讲述:Error querying database. Cause: java.lang.reflect.InaccessibleObjectException: 那么如果真的只习惯用Arrays.asList,那也是有对应的解决办法的。 一、解决办法大方向 不管做什么事情,都是先判定一个大方向,不管是…...
SE考研真题总结(一)
本帖开始分享考研真题中设计【软件工程】的部分,预计会出5期左右,敬请期待~ 一.单选题 1.程序编写不是软件质量保障过程~ 静态代码扫描是今年来多数被人提及的软件应用安全解决方案之一,指程序员在编写好代码后无需进行编译,直接…...
Xshell远程登录AWS EC2 Linux实例
文章目录 小结问题解决参考 小结 Xshell远程登录AWS EC2 Linux实例碰到些问题,进行解决并记录。 问题 在AWS中创建 EC2 Linux实例,生成的非对称密钥对,使用Xshell远程登录碰到一些问题。 解决 首先在Putty中可以使用的ppk密钥文件在Xshe…...
Elasticsearch:对时间序列数据流进行降采样(downsampling)
降采样提供了一种通过以降低的粒度存储时间序列数据来减少时间序列数据占用的方法。 指标(metrics)解决方案收集大量随时间增长的时间序列数据。 随着数据老化,它与系统当前状态的相关性越来越小。 降采样过程将固定时间间隔内的文档汇总为单…...
python自动化测试框架:unittest测试用例编写及执行
本文将介绍 unittest 自动化测试用例编写及执行的相关内容,包括测试用例编写、测试用例执行、测试报告等内容。 官方文档: https://docs.python.org/zh-cn/3/library/unittest.mock.html 1. 测试用例编写 在 unittest 中,一个测试用例通常…...
ctfhub技能树_web_web前置技能_HTTP
目录 一、HTTP协议 1.1、请求方式 1.2、302跳转 1.3、Cookie 1.4、基础认证 1.5、响应包源代码 一、HTTP协议 1.1、请求方式 注:HTTP协议中定义了八种请求方法。这八种都有:1、OPTIONS :返回服务器针对特定资源所支持的HTTP请求方法…...
mysql8报sql_mode=only_full_group_by(存储过程一直报)
1:修改数据库配置(重启失效) select global.sql_mode;会打印如下信息 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION里面包含 ONLY_FULL_GROUP_BY,那么就重新设置,在数据库中输入以下代码,去掉ONLY_FULL_GROU…...
Vue2中v-html引发的安全问题
前言:v-html指令 1.作用:向指定节点中渲染包含html结构的内容。 2.与插值语法的区别: (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。 (2).v-html可以识别html结构。 3.严重注意:v-html有安全性问题࿰…...
java内部类详解
文章目录 一、介绍二、为什么要使用内部类三、非静态内部类四、静态内部类五、局部内部类六、匿名内部类七、lambda表达式内部类八、成员重名九、序列化十、如何选择内部类 一、介绍 在java中,我们被允许在编写一个类(外部类OuterClass)时,在其内部再嵌…...
Python 潮流周刊#29:Rust 会比 Python 慢?!
△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯。 ὃ…...
吴恩达《机器学习》11-1-11-2:首先要做什么、误差分析
一、首先要做什么 选择特征向量的关键决策 以垃圾邮件分类器算法为例,首先需要决定如何选择和表达特征向量 𝑥。视频提到的一个示例是构建一个由 100 个最常出现在垃圾邮件中的词构成的列表,根据这些词是否在邮件中出现来创建特征向量&…...
Pandas在Excel同一个sheet里插入多个Dataframe和行
Pandas默认的to_excel是直接把完成的Datafrme写入一个sheet里,这并不能满足我们在一个sheet里插入多个Dataframe或多行的需求。为了实现插入多行或多Dataframe的目的,我们需要新建一个ExcelWriter对象,然后依次插入数据。 这里我们以插入2个Dataframe和三行单元格为例。 新…...
Let‘s Encrypt证书有效期缩短至90天后,如何实现自动续期
Let’s Encrypt证书有效期缩短至90天后,如何实现自动续期 打开网站突然发现浏览器地址栏一把红色小锁,提示"您的连接不是专用连接"——SSL证书过期了。这可能是站长最不想看到的画面之一:用户无法正常访问、搜索引擎排名下降、甚至…...
前端工程化:开发环境配置最佳实践
前端工程化:开发环境配置最佳实践 前言 开发环境配置是前端工程化的基础。一个良好的开发环境能大大提高开发效率,减少团队协作中的环境问题。今天我就来给大家讲讲如何配置一套高效的前端开发环境。 为什么开发环境配置如此重要 开发环境是开发者日常工…...
半导体协同设计:从数据孤岛到开放标准,构建高效芯片开发流程
1. 从“单打独斗”到“协同作战”:半导体设计范式的演进在半导体行业摸爬滚打了十几年,我亲眼见证了芯片设计从一门高度依赖个人英雄主义的“手艺”,逐渐演变为一项必须依靠精密协作的“系统工程”。早期的设计团队,一个资深工程师…...
告别马赛克!用html2canvas生成高清长图,我踩过的坑和最终方案
告别马赛克!用html2canvas生成高清长图,我踩过的坑和最终方案 去年接手一个电商活动页项目时,产品经理要求在H5页面底部添加"生成分享图"功能。本以为用html2canvas这个老牌库能轻松搞定,结果生成的图片模糊得像打了马赛…...
告别虚拟机:用RK3399开发板搭建你的移动机器人SLAM实验平台(ROS Kinetic + OpenCV 3.4.0)
基于RK3399的移动机器人SLAM实验平台全栈搭建指南 在机器人技术快速发展的今天,同时定位与地图构建(SLAM)已成为自主移动系统的核心技术之一。然而,高性能计算设备的高昂成本往往成为学习者和开发者面临的首要障碍。Rockchip RK3399开发板以其出色的性价…...
终极指南:如何用NPYViewer快速可视化NumPy数组数据
终极指南:如何用NPYViewer快速可视化NumPy数组数据 【免费下载链接】NPYViewer Load and view .npy files containing 2D and 1D NumPy arrays. 项目地址: https://gitcode.com/gh_mirrors/np/NPYViewer 还在为NumPy数组数据可视化而烦恼吗?面对二…...
别再死记硬背ResNet结构了!用PyTorch手把手拆解残差块,搞懂Skip Connection为啥能防梯度消失
别再死记硬背ResNet结构了!用PyTorch手把手拆解残差块,搞懂Skip Connection为啥能防梯度消失 残差网络(ResNet)自2015年问世以来,已经成为深度学习领域的基石架构之一。但很多开发者在复现ResNet时,往往陷入…...
别再傻傻分不清!同步复位、异步复位、Byte Enable,一个HDLbits实验搞定所有D触发器变种
数字电路设计实战:D触发器的五种工程变体与Verilog实现精要 在数字电路设计中,D触发器(D Flip-Flop)作为时序逻辑的基础单元,其变体在实际工程中的应用远比教科书描述的复杂。当你在HDLbits上完成Dff8r、Dff8p、Dff8ar…...
JavaScript条形码生成技术:JsBarcode架构设计与跨平台实现方案
JavaScript条形码生成技术:JsBarcode架构设计与跨平台实现方案 【免费下载链接】JsBarcode Barcode generation library written in JavaScript that works in both the browser and on Node.js 项目地址: https://gitcode.com/gh_mirrors/js/JsBarcode 在现…...
保姆级教程:用neo4j-admin import命令搞定CSV数据批量导入(附中文乱码解决方案)
从Excel到知识图谱:Neo4j CSV数据导入全流程避坑指南 当你第一次面对海量业务数据需要转化为可视化知识图谱时,那种既兴奋又忐忑的心情我深有体会。作为曾经同样从Excel表格堆里摸爬滚打过来的实践者,我将带你用最稳妥的方式跨过Neo4j数据导入…...
