Python实现HBA混合蝙蝠智能算法优化卷积神经网络回归模型(CNN回归算法)项目实战

news2024/11/24 5:55:32

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




1.项目背景

蝙蝠算法是2010年杨教授基于群体智能提出的启发式搜索算法,是一种搜索全局最优解的有效方法。该算法基于迭代优化,初始化为一组随机解,然后迭代搜寻最优解,且在最优解周围通过随机飞行产生局部新解,加强局部搜索速度。该算法具有实现简单、参数少等特点。

混合蝙蝠算法针对基本蝙蝠算法存在收敛速度慢,易陷入局部最优,求解精度低等缺陷,提出一种融合局部搜索的混合蝙蝠算法用于求解无约束优化问题。该算法利用混沌序列对蝙蝠的位置和速度进行初始化,为全局搜索的多样性奠定基础;融合Powell搜索以增强算法的局部搜索能力,加快收敛速度;使用变异策略在一定程度上避免算法陷入局部最优。

本项目通过HBA混合蝙蝠智能算法优化卷积神经网络回归模型。

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.构建HBA混合蝙蝠优化算法优化CNN回归模型

主要使用HBA混合蝙蝠优化算法优化CNN回归算法,用于目标回归。

6.1 HBA混合蝙蝠优化算法寻找的最优参数   

最优参数:

 

6.2 最优参数值构建模型

 

6.3 最优参数模型摘要信息 

 

6.4 最优参数模型网络结构 

 

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

 

7.模型评估

7.1 评估指标及结果

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

 

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

关键代码如下:

 

7.2 真实值与预测值对比图 

 

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

8.结论与展望

综上所述,本文采用了HBA混合蝙蝠智能优化算法寻找卷积神经网络CNN算法的最优参数值来构建回归模型,最终证明了我们提出的模型效果良好。此模型可用于日常产品的预测。

for t in range(N_gen):
    print('***********************当前迭代次数为:', t + 1, '******************************')

    # 对所有蝙蝠/位置进行循环
    for i in range(N_pop):
        Q[i] = np.random.uniform(Qmin, Qmax)  # 生成随机数
        v[i] = v[i] + (Sol[i] - best) * Q[i]  # 速度
        S[i] = Sol[i] + v[i]  # 位置



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


# y变量分布直方图
fig = plt.figure(figsize=(8, 5))  # 设置画布大小
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
data_tmp = df['y']  # 过滤出y变量的样本
# 绘制直方图  bins:控制直方图中的区间个数 auto为自动填充个数  color:指定柱子的填充色
plt.hist(data_tmp, bins='auto', color='g')

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

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


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

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

相关文章

集成了32位Cortex®M0内核XMC1302T038X0200AB、XMC1302Q040X0200AB 32MHz 200KB 闪存 工业MCU

XMC1000 32位工业 MCU 将 ARM Cortex™-M0 核心与领先的 65nm 制造工艺相结合,克服了目前 8 位设计的局限。XMC1000系列让目前的 8 位用户有机会享受 32 位的功耗,同时不在价格或易用性上做出妥协。XMC1000 在其细分市场提供最为广泛的闪存产品线&#x…

人工智能相关笔记

这近一年来,我在国科大修了:人工智能导论、机器学习与模式识别、语义网络与知识图谱、深度学习、强化学习……这几门专业课,由于发现了它们彼此之间有重复的知识点,真想把他们融会贯通一下,至少写个提纲挈领的东西给自…

xcode15启动IOS远程调试

1.用数据线连接IPhone到macOS 2.打开xcode15,然后点击Window->Devices and Simulators 3.选中左边的Devices可看到已连接的IPhone,然后点击Connect via network使其选中. 选择后,左边的IPhone设备的右边出现一个地球图标,表示成功通过网络连接到IPhone 现在可断开数据线的…

K8S初级入门系列之八-网络

一、前言 本章节我们将了解K8S的相关网络概念,包括K8S的网络通讯原理,以及Service以及相关的概念,包括Endpoint,EndpointSlice,Headless service,Ingress等。 二、网络通讯原理和实现 同一K8S集群&…

大模型开发(十):Chat Completion Models API 详解

全文共8000余字,预计阅读时间约18~28分钟 | 满满干货(附代码案例),建议收藏! 本文目标:详解Chat Completion Models的参数及应用实例,并基于该API实现一个本地知识库的多轮对话智能助理 代码&文件下载点这里 一、…

通过ETL自动化同步飞书数据到本地数仓

一、飞书数据同步到数据库需求 使用飞书的企业都有将飞书的数据自动同步到本地数据库、数仓以及其他业务系统表的需求,主要是为了实现飞书的数据与业务系统进行流程拉通或数据分析时使用,以下是一些具体的同步场景示例: 组织架构同步&#…

windows版docker部署mysql并导入数据

会用到的操作命令: 1.退出容器中的bash界面:exit 2.停止某个容器:docker stop container_name_or_id 3.要强制删除 Docker 中的某个容器: docker rm -f container_name_or_id 1.先下载并配置好docker 2.拉取 MySQL 镜像&#x…

深度学习——过拟合和Dropout

基本概念 什么是过拟合? 过拟合(Overfitting)是机器学习和深度学习中常见的问题之一,它指的是模型在训练数据上表现得很好,但在未见过的新数据上表现较差的现象。 当一个模型过度地学习了训练数据的细节和噪声&#…

数据仓库发展历史

数据仓库发展历史 一、演变 数据仓库是企业中用于存储、整合和分析数据的关键组件。随着时间的推移,数据仓库经历了三代演化:从需求驱动到平台化、从平台化到智能(AI)化 二、第一代(过时) 第一代数据仓…

【《Spring Boot微服务实战(第2版)》——一本关于如何在Spring Boot中构建微服务的全面指南】

使用Spring Boot框架构建基于Java的微服务架构,将应用程序从小型单体架构蜕变为由多个服务组成的事件驱动架构。这个最新版本围绕服务发现、负载均衡、路由、集中式日志、按环境配置和容器化等知识点,循序渐进地讲述微服务架构、测试驱动的开发和分布式系…

Radare2:using test

Radare2:using test └─$ sudo apt install radare2 100 ⨯ [sudo] kwkl 的密码: 正在读取软件包列表... 完成…

【Bug记录篇】IDEA双击打不开,报错的问题

早上,带着满满的干劲来实验室,准备继续我的IDEA之旅,结果好嘛,一打开IDEA,给我这样?!!!😲😲😲 这是怎么回事!!…

FPGA-DFPGL22学习7-gpio

系列文章目录 FPGA-DFPGL22学习6-led 文章目录 系列文章目录前言一、原理图1)key2)beeptouch端口对应1)key2)beeptouch 二、程序设计1)KEY2)beeptouch 三、程序编写1.KEY代码:2.beeptouch代码: 结论 前言 和原子哥一起学习FPGA …

blender 基础材质篇

材质展示 材质背景介绍 什么是PBR? PBR 全称为 Physically Based Rendering,译为基于物理属性的引擎渲染,也就是说会把物质的颜色、粗糙度、高光属性等进行分别处理,使物质体现出更真实的感觉; 什么是BRDF&#xff…

【Linux】初识多线程深入理解进程地址空间

目录 1 多线程的引入 1.1 相关概念 1.2 Linux操作系统理解多线程 特殊的进程结构 创建子进程的过程 创建多线程 进程与线程之间的关系 1.3 对多线程结构的管理 Windows管理多线程 Linux管理多线程 1.4 理解多线程与多进程相比,调度的成本更低 2 深入理…

[JAVAee]volatile关键字

目录 1.volatile的特性 ①保持线程可见性 2.volatile注意事项及适用场景 ①注意事项 ②适用场景 1.volatile的特性 ①保持线程可见性 volatile,译为"易变的". 对此我们就可以这样理解,对于被volatile修饰的变量的数值,是容易变化的. 在之前的线程安全文章中,…

XILINX ZYNQ 7000 AXI总线 (二)

了解了AXI 的大部分内容后,开始做一个实战,就是完成AXI 结构的输入输出搭建。 一.创建一个IP 3. 4. 5. 6.选择AXI FULL,创界主接口和从接口 7. 8.可以看到XILINX AXI FULL 的源代码 二.创建一个新的工程,把IP导入到这个工…

ARP系统的命令行基础

系列文章目录 华为数通学习(2) 一、基本命令结构 二、命令行视图 设备提供了多样的配置和查询命令,为便于用户使用这些命令,VRP系统按功能分类将命令分别注册在不同的命令行视图下。 2.1,命令行视图介绍 我们接下来…

DevOps系列文章 之GitLabCI模板库的流水线

目录结构,jobs目录用于存放作业模板。templates目录用于存放流水线模板。这次使用​​default-pipeline.yml​​作为所有作业的基础模板。 作业模板 作业分为Build、test、codeanalysis、artifactory、deploy部分,在每个作业中配置了rules功能开关&…

栈和队列 --- C语言实现

本篇文章来详细介绍一下栈和队列,并且通过数组或链表来实现。 目录 1.栈 1.1栈的概念及结构 1.2栈的实现 2.队列 2.1队列的概念及结构 2.2队列的实现 3.栈和队列面试题 4.相关概念选择题 1.栈 1.1栈的概念及结构 栈:一种特殊的线性表&#xff…