Python实现SSA智能麻雀搜索算法优化XGBoost回归模型(XGBRegressor算法)项目实战

2023-11-14

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




1.项目背景

麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法,在2020年提出,主要是受麻雀的觅食行为和反捕食行为的启发。

在麻雀觅食的过程中,分为发现者(探索者)和加入者(追随者),发现者在种群中负责寻找食物并为整个麻雀种群提供觅食区域和方向,而加入者则是利用发现者来获取食物。为了获得食物,麻雀通常可以采用发现者和加入者这两种行为策略进行觅食。种群中的个体会监视群体中其它个体的行为,并且该种群中的攻击者会与高摄取量的同伴争夺食物资源,以提高自己的捕食率。此外,当麻雀种群意识到危险时会做出反捕食行为。

本项目通过SSA麻雀搜索算法优化XGBoost回归模型。

2.数据获取

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

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

3.数据预处理

3.1 用Pandas工具查看数据

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

关键代码:

3.2 数据缺失查看

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

  

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

关键代码:  

3.3 数据描述性统计

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

关键代码如下:  

4.探索性数据分析

4.1 y变量分布直方图

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

4.2 相关性分析

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

5.特征工程  

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

关键代码如下:

5.2 数据集拆分

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

6.构建SSA麻雀搜索算法优化XGBoost回归模型

主要使用SSA麻雀搜索算法优化XGBoost算法,用于目标回归。

6.1 SSA麻雀搜索算法寻找最优参数值

最优参数值:

6.2 最优参数构建模型

这里通过最优参数构建XGBoost回归模型:

7.模型评估

7.1 评估指标及结果

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

从上表可以看出,R方分值为0.8201,模型效果良好。

关键代码如下:

7.2 真实值与预测值对比图

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

8.结论与展望

综上所述,本文采用了SSA麻雀搜索算法寻找XGBoost算法的最优参数值来构建回归模型,最终证明了我们提出的模型效果良好。此模型可用于日常产品的建模工作。

# 定义边界函数
def Bounds(s, Lb, Ub):
    temp = s
    for i in range(len(s)):
        if temp[i] < Lb[0, i]:  # 小于最小值
            temp[i] = Lb[0, i]  # 取最小值
        elif temp[i] > Ub[0, i]:  # 大于最大值
            temp[i] = Ub[0, i]  # 取最大值
 
 
# ******************************************************************************
 
# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 链接:https://pan.baidu.com/s/1-P7LMzRZysEV1WgmQCpp7A 
 
# 提取码:5fv7
 
# ******************************************************************************
 
 
# 构建特征和标签
X = data.drop(columns=['y'])  # 构建特征
y = data['y']  # 构建标签
 
# 数据集的划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# SSA初始化参数
SearchAgents_no = 10  # 种群数量
Max_iteration = 1  # 迭代次数

更多项目实战,详见机器学习项目实战合集列表:

机器学习项目实战合集列表_机器学习实战项目_胖哥真不错的博客-CSDN博客


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python实现SSA智能麻雀搜索算法优化XGBoost回归模型(XGBRegressor算法)项目实战 的相关文章

随机推荐

  • 京东姚霆:推理能力,正是多模态技术未来亟需突破的瓶颈!

    受访者 姚霆 京东 AI 研究院算法科学家 记者 夕颜 来源 CSDN ID CSDNnews 21 世纪 没有谁不知道电商 工资可以不发 但是每个月不网购几单 那是不可能的 打开熟悉的购物 App 在搜索栏输入想要买的东西 有时候你会发现
  • Python3.7+ Django2安装数据库(MySQL)依赖

    Django连接MySQL需要依赖以下库 pymysql mysqlclient 安装方法如下 pip install pymysql pip install mysqlclient 如果执行失败就参考后面的解决方法 注意 在安装mysql
  • 结构图的3D渲染,从COMSOL到Solidworks

    2022 02 23 在COMSOL 中 1 确认COMSOL中模型尺寸的单位是 mm 2 确认 几何 窗口的长度单位是 mm 3 右键 几何 下拉后选择 导出 选择文件类型 STEP文件 选择 导出所选对象 确认输出路径后 点击 导出 在
  • License授权方案

    源码地址 https github com sixj0 license 解决的问题 将项目卖给其他公司 需要将jar包在客户的服务器上部署 为了避免客户将项目jar包进行二次售卖 或者我们需要控制项目的使用期限 比如控制项目只能运行一年 这
  • Windows中PostgreSQL数据库的备份和还原

    1 备份 通过cmd命令窗口进入到PostgreSQL安装目录下的bin目录下 然后 输入以下命令 2 还原 也是通过cmd命令窗口进入到PostgreSQL安装目录下的bin目录下 然后输入以下命令即可 但在还原数据库之前 需要提前建立一
  • 系统架构设计高级技能 · 系统质量属性与架构评估

    系列文章目录 系统架构设计高级技能 软件架构概念 架构风格 ABSD 架构复用 DSSA 一 系统架构设计师 系统架构设计高级技能 系统质量属性与架构评估 二 系统架构设计师 系统架构设计高级技能 软件可靠性分析与设计 三 系统架构设计师
  • Spring @Async:SpringBoot 自定义线程池,修改springboot的默认线程池

    1 自定义线程池 1 1 修改application properties task pool corePoolSize 20 task pool maxPoolSize 40 task pool keepAliveSeconds 300
  • AD17铺铜时颜色偏暗

    AD17铺铜是颜色很暗 刚开始接触AD17时 使用起来很不熟练 铺铜是遇到了这个问题 正确的样子是如图一所示 偏暗的样子是如图二所示 图一 图二 如何解决这个问题呢 只需要简单一步就可以 将工具栏上的Altium transparent 2
  • MATLAB 学习资料整理

    MATLAB学习资料集合 https www ilovematlab cn thread 265500 1 1 html MATLAB官网文档 https ww2 mathworks cn help matlab index html MA
  • VBA第二种方法实现对比

    Sub check Click Dim ws1 As Worksheet ws2 As Worksheet Dim r1 As Range r2 As Range Dim cell1 As Range cell2 As Range Dim
  • opencv只能用python2不能用python3

    问题如图 感觉可以修改某个环境变量来调整 但是我不会 只好用笨办法了 下载了python3支持的opencv版本
  • 426 将二叉搜索树转化为排序的双向链表

    题目描述 将一个 二叉搜索树 就地转化为一个 已排序的双向循环链表 对于双向循环列表 你可以将左右孩子指针作为双向循环链表的前驱和后继指针 第一个节点的前驱是最后一个节点 最后一个节点的后继是第一个节点 特别地 我们希望可以 就地 完成转换
  • windows下写入文本换行符\r\n修改为linux下换行符\n

    最近一段时间经常使用python向文本写入数据 但是windows下换行符默认为 r n 而linux下换行符为 n 写入的文本要在linux下调用 这就很坑人了 代码前行的路上怎么能被小小石头绊倒 于是乎搜索了一通 发现这个事情仅需要几行
  • Latex 带圈数字

    我们写作大论文等中文文档 一般都会调用ctex类库 可能描述不准确 它一般已经调用了fontspec 带圈的数字0 20 在unicode字符集中已经有了 但是只有一部分字体包含了 比如 Cambria 所以我们使用带圈文字的时候 直接调用
  • tcym4

    aHR0cHM6Ly93d3cudmVyeWJpbi5jb20vPzQzZjZiYThlYTU5NzcxZGEjeVhtbjN5em43YVVPLzlKYUVrK3JWdWE3SXA2ck9HWHlock5BbkFzL2hyaz0 复制下方
  • CTFHub-WEB-文件上传

    目录 1 无限制 2 前端验证 编辑 3 htaccess 4 MIME验证 5 文件头检查 6 00截断 7 双写后缀 1 无限制 进入靶场环境中看到有上传文件的选项 本关写明无限制所以我们直接上传php后门文件 上传成功后用蚁剑连接 这
  • JVM深入理解内部类

    原文链接 https blog csdn net Hacker ZhiDian article details 82193100 原文链接 https blog csdn net coder what article details 893
  • echarts分裂地图与线性动画

    前言 如果没有geoJSON数据 可以去 datav官网 导出 定义数据结构 const pointsDataArr name 鄂州 展示的名称 routeName region 黄冈 lable 黄冈线 value 10 路线 value
  • FLAGS标志寄存器

    标志寄存器 Flags Register FR 又称程序状态字 Program Status Word PSW 这是一个存放条件标志 控制标志寄存器 主要用于反映处理器的状态和运算结果的某些特征及控制指令的执行 CF Carry Flag
  • Python实现SSA智能麻雀搜索算法优化XGBoost回归模型(XGBRegressor算法)项目实战

    说明 这是一个机器学习实战项目 附带数据 代码 文档 视频讲解 如需数据 代码 文档 视频讲解可以直接到文章最后获取 1 项目背景 麻雀搜索算法 Sparrow Search Algorithm SSA 是一种新型的群智能优化算法 在202