Python实现哈里斯鹰优化算法(HHO)优化Catboost回归模型(CatBoostRegressor算法)项目实战

news2025/1/10 10:45:39

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




1.项目背景

2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO),该算法有较强的全局搜索能力,并且需要调节的参数较少的优点。

本项目通过HHO哈里斯鹰优化算法寻找最优的参数值来优化CATBOOST回归模型。

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.构建HHO哈里斯鹰优化算法优化CATBOOST回归模型

主要使用HHO哈里斯鹰优化算法优化CatBoostRegressor回归算法,用于目标回归。

6.1 HHO哈里斯鹰优化算法寻找的最优参数

关键代码:

每次迭代的过程数据:

 

最优参数:

----------------HHO哈里斯鹰优化算法优化Catboost回归模型-最优结果展示-----------------

The best depth is 8

The best learning_rate is 0.01

 6.2 最优参数值构建模型

7.模型评估

7.1 评估指标及结果

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

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

关键代码如下:

 

7.2 真实值与预测值对比图

 

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

8.结论与展望

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


#!/usr/bin/env python
# coding: utf-8
 
# 定义初始化位置函数
def init_position(lb, ub, N, dim):
    X = np.zeros([N, dim], dtype='float')  # 位置初始化为0
    for i in range(N):  # 循环
        for d in range(dim):  # 循环
            X[i, d] = lb[0, d] + (ub[0, d] - lb[0, d]) * rand()  # 位置随机初始化
 
    return X  # 返回位置数据
 
 
# ******************************************************************************
 
# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 链接:https://pan.baidu.com/s/1c6mQ_1YaDINFEttQymp2UQ
 
# 提取码:thgk
 
# ******************************************************************************
 
 
if abs(x[0]) > 0:  # 判断取值
        depth = int(abs(x[0])) + 3  # 赋值
else:
        depth = int(abs(x[0])) + 5  # 赋值
 
if abs(x[1]) > 0:  # 判断取值
        learning_rate = (int(abs(x[1]))+1) / 10  # 赋值
else:
        learning_rate = (int(abs(x[1]))+1) / 10  # 赋值

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

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


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

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

相关文章

【LeetCode】剑指 Offer 52. 两个链表的第一个公共节点 p253 -- Java Version

题目链接:https://leetcode.cn/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/ 1. 题目介绍(52. 两个链表的第一个公共节点) 输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 在节点…

基于微信小程序开发的“校园帮”系统

基于微信小程序开发的“校园帮”系统【毕业论文,源码】 本系统使用了java和mysql结合的结构开发了微信小程序应用,系统中所有和数据库有关系的操作都通过一个通用类来实现,大大提高了代码的耦合性,当数据库类型等信息变化后直接修…

【剑指offer|6.寻找峰值】

0.寻找峰值 关键点: 返回任意一个峰值的下标即可nums[-1]nums[n]负无穷 输入:nums [1,2,3,1] 输出:2 解释:3 是峰值元素,你的函数应该返回其索引 2 1.傻瓜编程(纯属玩乐) class Solution { public:int findPeakElement(vector&l…

普通人在家就能用ChatGPT轻松月赚$5000美金的方法

太震撼了,这简直就是下个世纪才应该出现的产品,突然之间我感觉就像人类,刚刚发明了电灯一样,一切都要变了,而且变的速度太快,让我都觉得有点茫然了,绝对就是技术大爆炸。今天这篇文章我想通过ch…

React 的源码与原理解读(六):reconcileChildren 与 DIFF 算法

写在专栏开头(叠甲) 作者并不是前端技术专家,也只是一名喜欢学习新东西的前端技术小白,想要学习源码只是为了应付急转直下的前端行情和找工作的需要,这篇专栏是作者学习的过程中自己的思考和体会,也有很多参…

常年不卷,按时下班,工作能力强,同事求助知无不言,不扯皮,不拉帮结派,这样的职场清流竟然被裁掉了!...

在职场上,你永远想不到什么样的员工会被优化,比如下面这位:常年不卷,按时下班,工作很专业,同事问什么都回答,不扯皮,不拉帮结派,简直是职场清流。在上个月竟然被优化了&a…

一分钟腾讯云轻量应用服务器性能评测(慎入坑)

腾讯云轻量应用服务器性能评测,轻量服务器CPU主频、处理器型号、公网带宽、月流量、Ping值测速、磁盘IO读写及使用限制,轻量应用服务器CPU内存性能和标准型云服务器CVM处于同一水准,所以大家不要担心轻量应用服务器的性能,腾讯云百…

JavaEE企业级应用开发教程——第十章 初识Spring MVC框架(黑马程序员第二版)(SSM)

第十章 初识Spring MVC框架 JSP Model2架构模型是一种将页面显示、流程控制和业务逻辑分离的Web应用程序架构模型,采用JSP、Servlet和JavaBean技术实现。但是,它将通用逻辑以硬编码的方式实现,每次开发新的Web应用程序时都需要重新编写Servl…

MyBatis注解开发---实现增删查改和动态SQL

目录 1. 环境搭建 (1)创建持久层接口,并在接口方法上定义Sql语句 (2)测试方法 (3)运行结果 2. 注解实现增删查改 (1)增加用户 (2)删除用…

【4.17】贪心算法入门

什么是贪心? 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 刷题或者面试的时候,手动模拟一下感觉可以局部最优推出整体最优,而且想不到反例,那么就试一试贪心。 贪心的解题步骤? 贪心算法一…

《人体地图》笔记

《人体地图》 坂井建雄 著 孙浩 译 腹部通向大腿的隧道 腹部与大腿的分界点是大腿根部,即是腹股沟。 腹壁肌肉连结在腹股沟韧带上,腹壁肌肉包括三层,分别为腹外斜肌、腹内斜肌和腹横肌,每块肌肉都有一个张开的小孔,…

【靶场设计和渗透】

目录 一、前言 二、靶场设计 1、局域网 2、说明 三、渗透测试 1、信息收集 2、漏洞利用 四、后渗透利用 1、提权 2、权限维持 一、前言 为了深入贯彻学习网络安全法律法规,深入学习渗透测试知识,强化实战技能............ 编不出来了&#xff…

The Sandbox 的 OliveX Fitness 之城来啦!

4 月 11 日至 17 日,亲自来体验一下吧! 这种独特的体验将有趣和故事驱动的游戏与健身以及奖励结合起来。玩家可以探索隐藏的角落,逃出迷宫,爬上梯子,清除障碍,完成相互关联的任务,所以战略规划是…

Avue dynamic表单实现form单选,修改及新增项

Avue dynamic表单实现form单选,修改及新增项 AvueDialogFormTableViewOption.js /** Description:银行账号* Version: 1.0* Autor: Tj* Date: 2023-03-21 11:02:42*/ export const BankAccountOption (vueObj, formData) > {return {labelWidth: 100, //整体列…

【华为OD机试】1046 - 计算字符串的编辑距离

文章目录一、题目🔸题目描述🔸输入输出🔸样例1二、思路解析三、代码参考作者:KJ.JK🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f…

GDPU C语言 天码行空8

1. 求序列和 ⭐ 输出没有小数的浮点数 #include <stdio.h>double fun(int a, int n) {double res 0;int aa a,i;//aa 记录每一项for(i 1; i < n; i){res aa;aa aa * 10 a;}return res; }int main(){int a,n;scanf("%d %d", &a,&n);printf(&q…

Linux学习笔记——HTTPS协议

文章目录HTTPS是什么什么是加密为什么要进行加密常见的加密方式数据摘要与数据指纹数字签名HTTPS的工作过程探究方案1—只使对称加密方案2—只使非对称加密方案3—双方都是用非对称加密方案4—非对称加密对称加密中间人攻击证书方案5—非对称加密对称加密证书认证HTTPS是什么 H…

hypack单波束采集和处理基本流程

前两天有个读者问是否有单波束测深的操作和处理的步骤&#xff0c;在xiaok海洋测绘网上用关键字“单波束”搜索的结果就是确实没有相关的文章&#xff0c;相关的文章都是外业过程记录。下面以单波束XX&#xff08;可以是任何单波束&#xff09;和采集处理软件Hypack为例说明单波…

树莓派通过网线连接笔记本实现笔记本电脑Wifi的网络共享

基于windows电脑连接树莓派进行设置&#xff1a;通过通过一根网线&#xff0c;连接树莓派和电脑&#xff0c;使电脑和树莓派构成一个局域网&#xff0c;然后树莓派接收来自笔记本电脑wifi网络的共享网络。操作方法类似台式机通过网线共享笔记本电脑无线网络的步骤 1、 保证笔记…

[c++整人代码]超级加倍,让人承认自己是大傻猪

㊀程序介绍 这是本人看到的一个整人小病毒&#xff0c;唯一的杀伤力就是逼着你想坑的人承认他是猪。 本次更新&#xff1a;要求运行程序的人手动输入“我是猪”三个字 ㊁程序截图 1 本程序的窗口会自动保持最前 2 无法关闭本窗口 ㊂代码展示&#xff1a; #include <Wi…