Python实现猎人猎物优化算法(HPO)优化LightGBM回归模型(LGBMRegressor算法)项目实战

2023-09-18 14:35:44

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




1.项目背景

猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的优化搜索算法。受到捕食动物(如狮子、豹子和狼)和猎物(如雄鹿和瞪羚)的行为的启发,他们根据猎人和猎物的位置移动方法设计了一种新型的搜索方式及自适应度更新的方法。

本项目通过HPO猎人猎物优化算法寻找最优的参数值来优化LightGBM回归模型。

2.数据获取

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

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

3.数据预处理

3.1 用Pandas工具查看数据

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

关键代码:

3.2 数据缺失查看

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

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

关键代码:  

 

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.构建HPO猎人猎物优化算法优化LightGBM回归模型

主要使用HPO猎人猎物优化算法优化LightGBM回归算法,用于目标回归。

6.1 HPO猎人猎物优化算法寻找的最优参数  

最优参数:

 

6.2 最优参数值构建模型

7.模型评估

7.1 评估指标及结果

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

从上表可以看出,R方0.909,为模型效果较好。

关键代码如下:

7.2 真实值与预测值对比图

 

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

8.结论与展望

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

def __init__(self, m, T, lb, ub, R, C, X_train, y_train, X_test, y_test):
    self.M = m  # 种群个数
    self.T = T  # 迭代次数
    self.lb = lb  # 下限
    self.ub = ub  # 上限
    self.R = R  # 行
    self.C = C  # 列
    self.b = 0.1  # 调节参数
 
    self.X_train = X_train  # 训练集特征
    self.X_test = X_test  # 测试集特征
    self.y_train = y_train  # 训练集标签
    self.y_test = y_test  # 测试集标签
 
 
 
# ******************************************************************************
 
# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 链接:https://pan.baidu.com/s/1-P7LMzRZysEV1WgmQCpp7A 
 
# 提取码:5fv7
 
# ******************************************************************************
 
 
 # 提取特征变量和标签变量
y = df['y']
X = df.drop('y', axis=1)
 
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

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

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


 

更多推荐

如何搭建数据驱动自动化测试框架?

前言说到数据驱动自动化测试,你会不会有这样的疑问:数据怎么管理?数据怎么才能驱动测试用例执行?到底怎么样才算数据驱动?那么本篇文章就教你如何进行数据驱动测试,相信你一定能对数据驱动自动化测试有一个不一样的理解,希望这篇文章能帮助还在懵懵懂懂的你了解数据驱动测试,如何来做数据驱动测试?那么就跟上我的脚步吧^_^项目介绍1

动态近场通信标签:如何使用C++与微控制器进行NFC交互的完整指南

1.引言近场通信(NFC)技术已经成为现代电子设备中不可或缺的一部分。从手机支付到门禁系统,NFC为我们的日常生活带来了许多便利。但是,你知道我们可以如何使用C++与微控制器进行NFC交互吗?在本文中,我们将深入探讨如何使用开源NFC标签与微控制器进行通信。2.NFC简介近场通信(NFC)是一种建立在射频识别(RFID

2023 ICPC 网络赛 第一场 部分题解 (待完善)

DTransitivity题解:根据题意可以推出结论:如果存在连通块,那么这个连通块要满足条件,必然是满连通块.一共有两种情况1.存在一个连通块不是满连通块设cnt表示连通块的节点个数,num表示连通块边的个数一个连通块的贡献=cnt*(cnt-1)/2-num;那么最终答案=连通块贡献之和2.所有连通块都是满连通块因

2023!6招玩转 Appium 自动化测试

Appium是个什么鬼Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。可用于IOS和Android以及firefox的操作系统。原生的应用是指用android或ios的sdk编写的应用,移动网页应用是指网页应用,类似于ios中safari应用或者Chrome应用或者类浏

【react】使用useEffect操作dom

简言在学习react时,需要了一个需要在useEffect里操作dom的用法。一般不推荐这么干,如果是函数组件在一渲染已挂载后立即需要操作dom绑定事件等可以参考下面解决方法。描述官网交错运动示例这个示例中,usePointerPosition()Hook追踪当前指针位置。尝试移动光标或你的手指到预览区域上方,可以看到

【二叉搜索树】将二叉搜索树变平衡-力扣 1382 题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kuan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,并发编程redis,kaf

AG35学习笔记(一):debug串口抓取模组log、debug串口测试AT指令、echo命令通过串口发送16进制数据

目录一、概述二、抓取模组log2.1硬件接口2.2用户登录2.3相关指令三、测试AT指令3.1查看端口3.2进入模式四、串口发16进制echo使用一、概述二、抓取模组log在之前记录了通过USB,使用移远工具Qwinlog来抓取log(3.3抓取模组log)。现在记录下使用debug串口抓取模组log。2.1硬件接口根

MES管理系统在生产中的应用及智能工厂的构建思路

在当今制造业中,随着信息化技术和智能化的不断发展,MES生产管理系统已成为工厂生产的核心组成部分。MES管理系统不仅能够提高生产效率,还可以优化生产流程,提升产品质量。本文将详细介绍MES管理系统在工厂生产中的应用以及构建智能工厂的思路。一、MES系统在工厂生产中的应用1、生产计划管理MES系统在生产计划管理中起到了关

chat-gpt笔记:参数temperature与top_p

temperature官方文档temperaturenumberornullOptionalDefaultsto1Whatsamplingtemperaturetouse,between0and2.Highervalueslike0.8willmaketheoutputmorerandom,whilelowervalu

python中的NaN在质量控制中怎么处理?

一、数据中的缺省值气象数据中经常存在缺省值,比如未入库的站点数据、比如海温格点实况数据中的陆地区域。这些缺省值往往被赋予NaN(NotaNumber,非数)。NaN是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。这些NaN值一般需要在计算时被去除掉,以免影响计算结果。那么,该怎么去除呢?二、NaN的定义和

27 WEB漏洞-XSS跨站之代码及httponly绕过

目录HttpOnly安全过滤测试HttpOnly安全过滤绕过思路演示案例:Xsslabs关卡代码过滤绕过测试HttpOnly安全过滤测试防止xss攻击,指的是攻击手法,并不是能防止XSS漏洞,httponly阻止的仅仅只是cookiehttponly在相关的脚本都是支持的,我们根据自己网站的脚本环境,有相当的开启方法h

热文推荐