Python实现哈里斯鹰优化算法(HHO)优化随机森林回归模型(RandomForestRegressor算法)项目实战

news2024/11/15 15:51:44

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




1.项目背景

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

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

2.数据获取

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

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

 

3.数据预处理

3.1 用Pandas工具查看数据

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

关键代码:

 

3.2数据缺失查看

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

从上图可以看到,总共有9个变量,数据中无缺失值,共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哈里斯鹰优化算法优化随机森林回归模型

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

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

关键代码:

每次迭代的过程数据:

 

最优参数:

 

6.2 最优参数值构建模型

 

7.模型评估

7.1 评估指标及结果

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

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

关键代码如下:

7.2 真实值与预测值对比图

 

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

8.结论与展望

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

if abs(x[0]) > 0:  # 判断取值
    max_depth = int(abs(x[0])) + 5  # 赋值
else:
    max_depth = int(abs(x[0])) + 8  # 赋值

if abs(x[1]) > 0:  # 判断取值
    n_estimators = int(abs(x[1]))*100  # 赋值
else:
    n_estimators = int(abs(x[1]))+200  # 赋值


# ******************************************************************************
 
# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 链接:https://pan.baidu.com/s/1c6mQ_1YaDINFEttQymp2UQ
 
# 提取码:thgk
 
# ******************************************************************************

# 定义目标函数
def Fun(X_train, y_train, X_test, y_test, x, opts):
    # 参数
    alpha = 0.99  # 赋值
    beta = 1 - alpha  # 赋值
    # 原始特征数
    max_feat = len(x)
    # 选择特征数
    num_feat = np.sum(x == 1)
    # 无特征选择判断
    if num_feat == 0:  # 判断
        cost = 1  # 赋值
    else:
        # 调用错误率计算函数
        error = error_rate(X_train, y_train, X_test, y_test, x, opts)
        # 目标函数计算
        cost = alpha * error + beta * (num_feat / max_feat)

    return cost  # 返回数据

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

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


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

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

相关文章

SpringCloud------Eureka单机版整合生产以及消费(四)

SpringCloud------Eureka(四) Eureka 读音:有瑞卡 Eureka基础知识 单机构架步骤 集群构建步骤 autuator微服务信息完善 服务发现Discovery eureka自我保护 服务注册与发现 包括: Eureka Zookeeper Consul Nacos 【分布式的CAP理…

FlinkCDC初体验

一、CDC简介 1.1 什么是CDC? CDC是 Change Data Capture(变更数据获取 )的简称。 核心思想是,监测并捕获数据库的 变动(包括数据或数据表的插入 、 更新 以及 删除等),将这些变更按发生的顺序完整记录下 来&#xff0c…

【Flask】Python基于Flask应用

Flask介绍 Flask 是一款发布于2010年非常流行的 Python Web 框架。 特点 微框架、简洁,给开发者提供了很大的扩展性。Flask和相应的插件写得很好,用起来很爽。 开发效率非常高,比如使用 SQLAlchemy 的 ORM 操作数据库可以节省开发者大量书…

【LeetCode】数据结构题解(5)[分割链表]

分割链表 1.题目来源2.题目描述3.解题思路4.代码展示 所属专栏:玩转数据结构题型 博主首页:初阳785 代码托管:chuyang785 感谢大家的支持,您的点赞和关注是对我最大的支持!!! 博主也会更加的努力…

聊一聊 GDB 调试程序时的几个实用命令

一:背景 1. 讲故事 用惯了宇宙第一的 Visual Studio 再用其他的开发工具还是有一点不习惯,不习惯在于想用的命令或者面板找不到,总的来说还是各有千秋吧,今天我们来聊一下几个在调试中比较实用的命令: 查看内存硬件…

B站java、计算机学习整理(菜鸟版本)

B站java、计算机学习整理(菜鸟版本) 简介1、入门篇2、工具篇3、数据库篇4、框架篇5、JVM 篇6、源码篇7、算法与数据结构8、操作系统9、计算机组成原理10、计算机网络11、 设计模式 简介 处在互联网时代,是一种幸福,因为各式各样的…

Win10系统开机自动蓝屏无法使用怎么U盘重装系统?

Win10系统开机自动蓝屏无法使用怎么U盘重装系统?今天和大家一起来分享Win10系统蓝屏之后怎么去进行修复的方法。很多用户都有遇到电脑蓝屏无法启动的问题,那么遇到这个问题之后怎么去重装系统呢?接下来我们来看看以下的解决方法分享吧。 准备…

Python突破某网游游戏JS加密限制,进行逆向解密,实现自动登录

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 今天来分享一下如何使用Python突破某网游游戏JS加密限制,进行逆向解密,实现自动登录。 逆向目标 目标:某 7 网游登录 主页:aHR0cHM6Ly93d3cuMzcuY29tLw 接口:aHR…

牛客_华为_ HJ63 DNA序列

HJ63 DNA序列 st input() n int(input())max_ratio 0 ratio 0 res for i in range(0,len(st)-n1):s st[i:in]ratio s.count(C)s.count(G)if ratio > max_ratio:max_ratio ratiores s print(res)

cPanel XSS漏洞分析研究(CVE-2023-29489)

一、漏洞原理 漏洞简述 cPanel 是一套在网页寄存业中最享负盛名的商业软件,是基于于 Linux 和 BSD 系统及以 PHP 开发且性质为闭源软件;提供了足够强大和相当完整的主机管理功能,诸如:Webmail 及多种电邮协议、网页化 FTP 管理、…

【考前看几题】系统集成项目管理师-2022年上半年-上午真题(广东卷)

前言 汇总知识点、重点问题、难点 由问题引出知识点 软件技术、其他技术、管理基础、整体管理、范围管理、成本管理、人力资源管理 干系人管理、合同管理、采购管理、配置管理、质量管理、风险管理、安全管理 文章目录 前言软件技术、其他技术管理基础整体管理范围管理成本管理…

第12届蓝桥杯国赛真题剖析-2021年5月29日Scratch编程初中级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第128讲。 第12届蓝桥杯Scratch国赛真题,这是2021年5月29日举办的全国总决赛,比赛仍然采取线上…

【java】Java 异常处理的十个建议

文章目录 前言一、尽量不要使用e.printStackTrace(),而是使用log打印。二、catch了异常,但是没有打印出具体的exception,无法更好定位问题三、不要用一个Exception捕捉所有可能的异常四、记得使用finally关闭流资源或者直接使用try-with-resource五、捕获…

TCP协议特性讲解

文章目录 TCP报文结构确认应答超时重传三次握手与四次挥手滑动窗口流量控制拥塞控制延时应答捎带应答面向字节流 - 粘包问题异常处理 - 心跳包 TCP报文结构 16位源端口号:表示数据从哪来的。 16位目的端口号:表示数据要到哪里去。 32位序号:由…

Centos7 安装 MySql8

1、查看是否安装 mariadb rpm -qa | grep mariadb 显示:mariadb-libs-5.5.56-2.el7.x86_64 2、卸载 mariadb rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 3、安装 mysql 依赖包 yum install libaio 4、创建 mysql 安装目录 mkdir /usr/local/mysql 创…

【完整攻略】OPPO手机无密码解锁方法

全世界有数百万人拥有 OPPO 手机。它以其经济实惠但功能强大的智能手机而闻名。但是,与许多其他人一样,您可能会在某些日子后忘记密码。那么,如果您忘记了 OPPO 手机的密码或图案怎么办?你将如何解锁它?这是一个大问题…

Java+大数据学习笔记分享!

今天给大家分享一个笔记网站! 我在码云中整理超全面学习笔记内容! Gitee地址:https://gitee.com/fanggaolei/learning-notes-warehouse 项目中目前包含了大数据和Java后端方向的全部学习笔记,同样也是一个学习路线,笔记…

1-photoshop--修改图片内容--填充的使用

一、photoshop--修改图片内容--填充的使用: 在photohsop中没有发现图形填充功能,如何实现功能? 需要把这个图片中的原有文字覆盖 ,1.使用吸管工具 ,获取图片背景颜色,前景色为需要的颜色 2.在需要的选择进…

采购管理怎么做(详解采购工作流程)

阅读本文您将了解:1.采购管理的意义;2.采购工作流程(中小企业);3.采购管理未来发展趋势。 一、采购管理的意义 采购管理是指企业为满足生产经营需要,对外部供应商进行的采购活动的规划、组织、实施和控制…

RocketMQ-ONS 内存占用过大问题处理

RocketMQ-ONS 内存占用过大问题处理 1、问题环境描述2、问题现像描述3、问题分析3.1、问题定位阶段1(确认内存占用原因)3.2、问题定位阶段2(缓存参数配置无效问题)3.3、问题定位阶段2(分析占用原因) 4、解决…