Python实现FA萤火虫优化算法优化卷积神经网络回归模型(CNN回归算法)项目实战

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

1.项目背景

萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , 作为最新的群智能优化算法之一,该算法具有更好的收敛速度和收敛精度,且易于工程实现等优点。

本项目通过FA萤火虫优化算法寻找最优的参数值来优化CNN回归模型。

2.数据获取

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

编号 

变量名称

描述

1

x1

2

x2

3

x3

4

x4

5

x5

6

x6

7

x7

8

x8

9

x9

10

x10

11

y

因变量

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

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.构建FA萤火虫优化算法优化CNN回归模型

主要使用FA萤火虫优化算法优化CNN回归算法,用于目标回归。

6.1 FA萤火虫优化算法寻找的最优参数   

最优参数:

   

6.2 最优参数值构建模型

编号

模型名称

参数

1

CNN回归模型

units=best_units

2

epochs=best_epochs

6.3 最优参数模型摘要信息

6.4 最优参数模型网络结构

  

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

  

7.模型评估

7.1 评估指标及结果

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

模型名称

指标名称

指标值

测试集

CNN回归模型

  R方

0.9126

均方误差

3568.1599

可解释方差值

0.9141

平均绝对误差

45.9236

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

关键代码如下:

7.2 真实值与预测值对比图

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

8.结论与展望

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

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

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

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


 

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

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

相关文章

请介绍一下MySQL的存储引擎及其特点

问题:请介绍一下MySQL的存储引擎及其特点。 回答: MySQL是一个开源的关系型数据库管理系统,它支持多种存储引擎,每个存储引擎都有其自身的特点和适用场景。下面是对MySQL常见存储引擎的简要介绍: InnoDB: …

小航助学题库白名单竞赛考级蓝桥杯等考scratch(8级)(含题库教师学生账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号) 需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号)

大模型训练的过程(通俗易懂)

模型训练的过程是什么样的? 模型训练的过程就像是教一个小孩子去认识这个世界,让他从经验中学习和逐步提高。 数据预处理:这就像是给小孩子提供学习的教材。首先,我们需要将原始的文本数据(原始的故事、课本等&#x…

Java核心知识点整理大全26-笔记

目录 27. Storm 7.1.1. 概念 27.1.1. 集群架构 27.1.1.1. Nimbus(master-代码分发给 Supervisor) 27.1.1.2. Supervisor(slave-管理 Worker 进程的启动和终止) 27.1.1.3. Worker(具体处理组件逻辑的进程&#xff…

力扣二叉树--第三十九天

前言 本来打算这几天不写题了,等待是痛苦的,复习完了就写写题吧,等待考试多焦虑啊。 内容 一、二叉树的最近公共祖先 236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 递归 func lowestCommonAnces…

【Java GUI窗体开发实践】基于抽象模板模式设计GUI

文章目录 前言一、抽象模板模式二、使用步骤1.定义模板抽象类2.子类继承父类,重写父类方法前言 尽管Java GUI 是一项比较古老的技术,但是可以在Java GUI中训练设计模式,让自己的代码书写更加规范。 不管是Java GUI项目还是其他项目,我们都希望代码有较强的可维护性和健壮性…

代洋集团:引领太阳能储能电站新时代

代洋集团,一直致力于绿色能源领域的领导者,再创太阳能储能电站新高度。我们精心打造的太阳能储能电站,将高效光伏板与智能储能系统完美结合,提供稳定、持续的清洁能源。 此款太阳能储能电站,采用最先进的光电技术&…

c 语言常用的加密算法——AES加密算法

在C语言中,常用的加密算法包括以下几种: AES加密算法:这是一种对称加密算法,广泛用于数据加密。在C语言中,可以使用openssl库来实现AES加密。RSA加密算法:这是一种非对称加密算法,即加密和解密…

Mysql timestamp和datetime区别

文章目录 一、存储范围和精度二、默认值和自动更新三、时区处理四、索引和性能五、存储空间和数据复制六、使用场景和注意事项七、时区转换 MySQL是一个常用的关系型数据库管理系统,其内置了多种数据类型用于存储和操作数据。其中,timestamp和datetime是…

分包(微信小程序)

首先,微信小程序中使用分包是为了减少首屏的请求,因为微信小程序会默认下载主包内的内容并展示到页面上,但是随着业务量的增加,代码量也会越来越大。会导致我们启动小程序的时候首页加载速度过慢的这个问题。这时我们就可以采用分…

C语言-字符串函数

字符串 1. 字符串处理函数 1. strlen:长度 作用:测量字符串长度 语法: size_t strlen(const char *s);参数: s:要测量的字符指针变量 返回值: 字符串长度 注意:不包含 ‘\0’ sizeof 是个关…

研习代码 day49 | 动态规划——子序列问题(回文)

一、回文子串(连续) 1.1 题目 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串&#xf…

解决(error) ERR Errors trying to SHUTDOWN. Check logs.问题~

该问题出现在我在使用shutdown关闭redis服务器时,出现该问题的原因是由于配置文件的日志文件位置未配置或者缺少日志文件 我自己出现该问题是因为缺少日志文件,解决步骤如下所示: 第一步:在该目录下使用touch命令创建日志文件 第…

【工具与中间件】快速构建飞书群聊机器人

文章目录 0. 前言1. 无痛入门1.1 飞书创建群聊机器人1.2 Webhook 请求示例1.3 设置安全策略 2. 实战3. 总结3.1 使用体验3.2 深入使用建议 先进团队用飞书,先进飞书群聊有...... 0. 前言 科技蓬勃发展的今天,我们可以轻松拥有属于自己/团队的机器人。日…

Ubuntu18.04 本地安装CVAT标注工具

写在前面: 1、如果直接clone最新版本的cvat,python版本最好安装3.8的,因为其中部分代码的语法只有高版本的python才可以支持。 2、安装完成以后本地登陆可能出现"cannot connect to cvat server"的错误,可以从Cannot …

制作麒麟oem镜像之通过识别终端品牌与BIOS安装不同内容

原文链接:麒麟oem镜像之识别终端品牌与BIOS安装不同内容 **hello,大家好啊!**在个性化和定制化日益成为趋势的今天,操作系统的定制化安装也变得越来越重要。特别是对于企业用户来说,能够根据不同的硬件配置和需求&…

项目实战之RabbitMQ重试机制进行消息补偿通知

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 文章目录 🌟架构图&#x…

Python Tkinter库入门与基础

更多资料获取 📚 个人网站:ipengtao.com Tkinter是Python标准库中内置的图形用户界面(GUI)工具包,提供了创建窗口、按钮、文本框等GUI元素的功能。本文将介绍Tkinter的基础知识,帮助大家快速入门。 安装与…

【华为OD题库-066】冠亚军排名-java

题目 2012伦敦奥运会即将到来,大家都非常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下. 1.首先gold medal数量多的排在前面 2.其次silver medal数量多的排在前面 3.然后bronze medal数量多的排在前面 4.若以上三个条件仍无法区分名次,…

【OpenGauss源码学习 —— (VecToRow)算子】

VecToRow 算子 概述ExecInitVecToRow 函数功能参数步骤 ExecVecToRow 函数功能描述参数返回值执行步骤DevectorizeOneBatch 函数 ExecEndVecToRow 函数总结 声明:本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果&#x…