Python实现猎人猎物优化算法(HPO)优化卷积神经网络回归模型(CNN回归算法)项目实战

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




1.项目背景

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

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

2.数据获取

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

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

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%测试集进行划分,关键代码如下:

5.3 数据样本增维

数据样本增加维度后的数据形状:

 

6.构建HPO猎人猎物优化算法优化CNN回归模型

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

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

关键代码:

  

最优参数:

  

6.2 最优参数值构建模型

6.3 最优参数模型摘要信息

 

6.4 最优参数模型网络结构

 

6.5 最优参数模型训练集测试集损失曲线图

 

7.模型评估

7.1 评估指标及结果

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

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

关键代码如下:

 

7.2 真实值与预测值对比图

 

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

8.结论与展望

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

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博客


 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Krahets 笔面试精选 88 题——40. 组合总和 II

使用深度搜索的方法: 由于题目说候选数组中的每个数字在每个组合只能出现一次,所以,为了避免重复,在开始之前对候选数组进行升序排序,这样优先选择小的数,如果当前的数都小于目标值,则后面的数就…

Android MQTT:实现设备信息上报与远程控制

Android MQTT:实现设备信息上报与远程控制 1. 介绍 1.1 MQTT是什么? MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,最初由IBM开发,用于连接远程设备与服务器之间的通信。它在物…

day2_C++

day2_C 代码题思维导图 代码题 #include using namespace std;#define MAX 50struct StuData {private:int scoreArr[MAX];int num;public:void setNum(int num);void input();void sort();void show();int getnum();};void StuData::setNum(int num){this->num num; }vo…

第3章 【MySQL】字符集和比较规则

3.1 字符集和比较规则简介 3.1.1 字符集简介 如何存储字符串?需要建立字符与二进制数据的映射关系。建立这个关系需要: 1.把哪些字符映射成二进制数据? 2.怎么映射? 将一个字符映射成一个二进制数据的过程也叫做 编码 &#…

[杂谈]-快速了解直接内存访问 (DMA)

快速了解直接内存访问 (DMA) 文章目录 快速了解直接内存访问 (DMA)1、使用 DMA 需要什么?2、DMA介绍3、DMA 中的数据传输如何进行?4、DMA接口5、DMAC 控制器寄存器6、DMA 控制器编程模式6.1 突发模式(Burst Mode)6.2 循环窃取模式…

MATLAB 动态图GIF

MATLAB 动态图GIF 前言一、创建动态图(动态曲线、动态曲面)1. 创建动画曲线(MATLAB animatedline函数)2. 创建动画曲面 二. 保存动态图三、完整示例1. 动态曲线( y s i n ( x ) ysin(x) ysin(x))2. 动态曲…

Linux之权限

目录 一、shell运行原理 二、权限 1、对人操作 2、对角色和文件操作 修改权限(改属性): ①ugo- ②二进制数的表示 修改权限(改人): 三、权限的相关问题 1、目录的权限 2、umask 3、粘滞位 一、s…

LeetCode 202 快乐数

题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 法一:哈希 使用哈希表循环判断每次经过平方和的数,如果为1则直接返回true,若之前存在过但不为1则直接返回false 代码 class Solution { public:// 计算…

基于文本提示的图像目标检测与分割实践

近年来,计算机视觉取得了显着的进步,特别是在图像分割和目标检测任务方面。 最近值得注意的突破之一是分段任意模型(SAM),这是一种多功能深度学习模型,旨在有效地从图像和输入提示中预测对象掩模。 通过利用…

【业务功能篇92】微服务-springcloud-多线程-异步处理-异步编排-CompletableFutrue

三、CompletableFutrue 一个商品详情页 展示SKU的基本信息 0.5s展示SKU的图片信息 0.6s展示SKU的销售信息 1sspu的销售属性 1s展示规格参数 1.5sspu详情信息 1s 1.ComplatableFuture介绍 Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用 isDone方…

Ansible自动化运维之playbooks剧本

文章目录 一.playbooks介绍1.playbooks简述2.playbooks剧本格式3.playbooks组成部分4.运行playbooks及检测文件配置 二.模块实战实例1.playbooks模块实战实例2.vars模块实战实例3.指定远程主机sudo切换用户4.when模块实战实例5.with_items迭代模块实战实例6.Templates 模块实战…

Delft3D模型教程

详情点击公众号链接:基于Delft3D模型水体流动、污染物对流扩散、质点运移、溢油漂移及地表水环境报告编制教程 Delft3D计算网格构建 Delft3D水动力数值模拟 Delft3D污染物对流扩散数值模拟 一,Delft3D软件及建模原理和步骤 1.1地表水数值模拟常用软件、…

认识SQL sever

目录 一、数据库的概念 1.1数据库的基本概念 1.2对数据库的了解 二、数据库的分类 2.1关系型数据库(RDBMS): 2.2非关系型数据库(NoSQL): 2.3混合数据库: 2.4数据仓库: 2.5嵌…

报错:为什么数组明明有内容但打印的length是0

文章目录 一、问题二、分析三、解决1.将异步改为同步2.设置延迟 一、问题 在日常开发中,for 循环遍历调用接口,并将接口返回的值进行拼接,即push到一个新的数组中,但是在for循环内部是可以拿到这个新的数组,而for循环…

docker笔记9:Docker-compose容器编排

目录 1.是什么? 2. 能干嘛? 3.去哪下? 4.安装步骤 ​编辑 5.卸载步骤 6.Compose核心概念 6.1概念 6.2 Compose常用命令 7.Compose编排微服务 7.1改造升级微服务工程docker_boot 7.2不用Compose 7.2.1 单独的mysql容器实例 7.3 …

自动化测试基础知识详解

前言 有颜色的标注主要是方便记忆,勾选出个人感觉的重点 块引用:大部分是便于理解的话,稍微看看就行,主要是和正常的文字进行区分的 1、什么是自动化测试 自动化测试是软件测试活动中一个重要分支和组成部分,随着软…

C#事件event

事件模型的5个组成部分 事件拥有者(event source)(类对象)(有些书将其称为事件发布者) 事件成员(event)(事件拥有者的成员)(事件成员就是事件本身…

拿下嵌入式软件工程师面试题(day1)

前言 (1)如果你在读大学,不管你本科毕业是读研还是就业,你都可以早点准备嵌入式面试题,本系列教程的面试题均基于C语言。 (2)像嵌入式学得好,且学历不错的本科生和研究生&#xff0c…

mysql8 Found option without preceding group错误

这个错误说起来是真的坑,今晚帮同学在window操作系统上安装mysql8当自定义my.ini文件的时候 就出现一下错误,死活启动不起来 一直报错。当删掉这个my.ini文件的时候却能启动,刚开始以为是my.ini里的配置选项不对,一个一个筛查后依…

抖音小店爆款制造指南:打造抖音爆款商品的八大技巧

抖音小店作为一种电商模式,通过短视频形式展示商品,吸引用户购买。在抖音平台上,打造爆款商品是每个抖音小店主的梦想。以下是四川不若与众整理的一些抖音小店如何打造爆款商品的技巧。 1. 产品选择:选择适合抖音平台的产品非常重…