Python实现SMA黏菌优化算法优化循环神经网络回归模型(LSTM回归算法)项目实战

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

1.项目背景

黏菌优化算法(Slime mould algorithm,SMA)由Li等于2020年提出,其灵感来自于黏菌的扩散和觅食行为,属于元启发算法。具有收敛速度快,寻优能力强的特点。主要模拟了黏菌的扩散及觅食行为,利用自适应权重模拟了基于生物振荡器的“黏菌传播波”产生正反馈和负反馈的过程,形成具有良好的探索能力和开发倾向的食物最优连接路径,因此具有较好的应用前景。 

本项目通过SMA黏菌优化算法优化LSTM回归模型。 

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()方法绘制直方图:

4.2 相关性分析

从上图中可以看到,数值越大相关性越强,正值是正相关、负值是负相关。

5.特征工程

5.1 建立特征数据和标签数据

关键代码如下:

5.2 数据集拆分

通过train_test_split()方法按照80%训练集、20%测试集进行划分,关键代码如下:

5.3 数据样本增维

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

6.构建SMA黏菌优化算法优化LSTM回归模型 

主要使用SMA黏菌优化算法优化LSTM回归算法,用于目标回归。 

6.1 SMA黏菌优化算法寻找最优参数值 

最优参数:

6.2 最优参数值构建模型 

编号

模型名称

参数

1

LSTM回归模型

units=best_units

2

epochs=best_epochs

6.3 最优参数模型摘要信息

6.4 最优参数模型网络结构

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

7.模型评估

7.1评估指标及结果 

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

模型名称

指标名称

指标值

测试集

LSTM回归模型

R方

0.9679

均方误差

770.1426

解释方差分

0.9709

绝对误差

16.4287 

从上表可以看出,R方分值为0.9679,说明模型效果比较好。

关键代码如下:  

  

7.2 真实值与预测值对比图

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

8.结论与展望

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

# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 获取方式一:
 
# 项目实战合集导航:
 
https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
 
# 获取方式二:
 
链接:https://pan.baidu.com/s/1FjxTjgpEoHmD8I9Dodh6ng 
提取码:rnns

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汉之名将韩信

与英勇霸气的项羽相比,刘邦或许显得无能猥琐,但刘邦深知自己的不足,愿意放权给跟随他的人,让他们发挥才能。正是这种谦逊和智慧,最终让刘邦赢得了天下。 帷帐之间筹谋,千里之外决胜,我之子房无…

计算机服务器中了halo勒索病毒怎么处理,halo勒索病毒解密流程步骤

在网络技术飞速发展的时代,越来越多的企业走向了数字化办公模式,利用网络可以开展各项工作业务,网络也为企业的生产运营提供了极大便利,但网络是一把双刃剑,从网络出现就一直存在网络数据安全问题,这也是众…

Essential Input and Output

How to read data from the keyboard? How to format data for output on the screen? How to deal with character output? 一、Input from the Keyboard the scanf_s() function that is the safe version of scanf() int scanf_s(const char * restrict format, ... );…

电子电器架构 --- 主机厂产线的两种刷写方法

电子电器架构 — 主机厂产线的两种刷写方法 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证…

【Django学习笔记(六)】MySQL的安装配置、启动关闭操作

MySQL的安装配置、启动关闭操作 前言正文1、初识网站1.1 实现静态网站与动态网站效果1.2 数据存储方式 2、MySQL的安装和配置2.1 MySQL下载2.2 安装补丁2.3 安装MySQL2.4 创建配置文件2.5 初始化 3、MySQL的启动和关闭4、MySQL连接测试4.1 MySQL 的连接方式4.2 使用 MySQL自带工…

【muduo源码学习】源码分析之Channel、EventLoop和Selector

在 one-loop-per-thread核心原理 中,介绍了 one loop per thread 网络模型的核心原理,在本篇本章中,我将重点介绍该模型中的IO事件处理部分在 muduo 网络库中是如何实现的,而涉及 TCP 连接处理部分,也即 socket 编程部…

群发邮件软件哪个好

选择一个好的群发邮件软件取决于您的具体需求,如预算、邮件量、自动化需求、分析深度以及是否需要集成其他营销工具等。以下是一些评价较高且功能强大的群发邮件软件,您可以根据自身情况选择: 易邮件群发大师:一款传统使用最广泛的…

【项目学习01_2024.05.05_Day05】

学习笔记 4.3 接口开发4.3.1 树型表查询4.3.2 开发Mapper4.3.3 开发Service4.3.4 测试Service 4.4 接口测试4.4.1 接口层代码完善4.4.2 测试接口 4.3 接口开发 4.3.1 树型表查询 4.3.2 开发Mapper 在对应的Mapper里定义一个方法 在同名的xml文件里具体定义相应的sql语句 4…

阿里实习生:面试阿里其实并没有那么难。

愉快的五一假期已经结束了, 又要投入到学习和工作当中了。 今天分享一位同学在阿里的Go后端实习面经详解, 希望对你有帮助。 Go里有哪些数据结构是并发安全的? 并发安全就是程序在并发的情况下执行的结果都是正确的; Go中数据类型分为两大类&#xff…

探秘Tailwind CSS:前端开发的加速器(Tailwind CSS让CSS编写更简洁)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Tailwind CSS 📒📝 快速体验📝 深入学习⚓️ 相关链接 ⚓️📖 介绍 📖 在这个快速迭代的互联网时代,前端开发效率和设计质量的双重要求,使得开发者们不断寻求更高效的工具和方法。今天,我们要介绍的是一个能够极大…

【数据库原理及应用】期末复习汇总高校期末真题试卷03

试卷 一、选择题 1 数据库中存储的基本对象是_____。 A 数字 B 记录 C 元组 D 数据 2 下列不属于数据库管理系统主要功能的是_____。 A 数据定义 B 数据组织、存储和管理 C 数据模型转化 D 数据操纵 3 下列不属于数据模型要素的是______。 A 数据结构 B 数据字典 C 数据操作 D…

Python基础学习之装饰器

大家好,今天我想和大家分享一下Python中一个非常强大且优雅的特性——装饰器(Decorators)。装饰器在Python中是一种高级语法,它允许你在不修改函数或类的情况下,为其添加额外的功能。这不仅让代码更加整洁,…

Coze扣子开发指南:怎么使用功能强大的插件?

●插件是什么? 想象一下,你的机器人是一个玩具车,它本来只能跑直线。但是,如果你给它装上一些额外的小配件,比如翅膀,它就能飞;装上轮子,它就能在各种地形上跑。这些小配件&#xf…

关于IDEA中项目中各个方法、引用、注解等全部报错的情况

今天打开项目弹出很多提示框,也没注意,然后突然发现项目所有都在报错,不管是启动类还是方法类,各种注解、方法、引用等全红了,随便打开一个都是密密麻麻全红。 首先排查依赖和JDK等引用问题,包括我们的mave…

多线程使用说明

一、如何创建多线程 1、继承Thread类 如果调用run方法,相当于还是只有一条main线程,会把run的线程当成一条普通对象,如下,t会执行完再往下执行,这样t就不是一个线程类,而是一个普通的对象,所以必…

(四)机器学习在银行中的典型应用场景(模型) #CDA学习打卡

本文总结了机器学习在银行中的典型业务应用场景,包括客户管理、零售智能营销、公司智能营销、自然语言处理、运营管理以及图像识别。

通过自适应提示提升大语言模型的零样本推理能力

随着大模型(LLMs)的快速发展,它们在自然语言处理(NLP)任务上取得了前所未有的成就。特别是,LLMs展现出了强大的推理和规划能力,这得益于它们的少样本和零样本学习能力。然而,现有的方…

三分钟一条抖音爆款短视频,轻松日引500+创业粉,复制粘贴即可,简单好…

详情介绍 团队历经三个月终于给兄弟把这个抖音测试出来了过程就不说了全是泪 最近抖音拆解项目是比较火的,前段时间不行拉现在又是可以继续拆解拉我这边自己也实操的一个引流渠道 咱们为什么要通过抖音来引流创业粉啊 因为抖音和知乎的创业粉的质量还是比较高的 本次…

【SQL每日一练】统计复旦用户8月练题情况

文章目录 题目一、分析二、题解1.使用case...when..then2.使用if 题目 现在运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数情况,请取出相应明细数据,对于在8月份没有练习过的用户,答题数结果返回0. 示例代码&am…

线程安全的概念及原因

1.观察线程不安全 public class ThreadDemo {static class Counter {public int count 0;void increase() {count;}}public static void main(String[] args) throws InterruptedException {final Counter counter new Counter();Thread t1 new Thread(() -> {for (int …
最新文章