Python基于PyTorch实现循环神经网络回归模型(LSTM回归算法)项目实战

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




1.项目背景

LSTM网络是目前更加通用的循环神经网络结构,全称为Long Short-Term Memory,翻译成中文叫作“长‘短记忆’”网络。读的时候,“长”后面要稍作停顿,不要读成“长短”记忆网络,因为那样的话,就不知道记忆到底是长还是短。本质上,它还是短记忆网络,只是用某种方法把“短记忆”尽可能延长了一些。

本项目通过基于PyTorch实现循环神经网络回归模型。

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

6.构建循环神经网络回归模型

主要使用LSTM回归算法,用于目标回归。

6.1 构建模型

 

7.模型评估

7.1 评估指标及结果

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

 

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

关键代码如下:

 

7.2 真实值与预测值对比图

 

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

8.结论与展望

综上所述,本文基于PyTorch实现循环神经网络回归模型,最终证明了我们提出的模型效果良好。此模型可用于日常产品的预测。

# 定义训练函数
def train(model, train_loader, criterion, optimizer, device):model.train()  # 设置训练模式for i, (inputs, labels) in enumerate(train_loader):  # 进行循环inputs, labels = inputs.to(device), labels.to(device)  # 输入数据、标签数据optimizer.zero_grad()  # 清空过往梯度本次机器学习项目实战所需的资料,项目资源如下:项目说明:
链接:https://pan.baidu.com/s/1dW3S1a6KGdUHK90W-lmA4w 
提取码:bcbp# 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.mzph.cn/news/7770.shtml

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

相关文章

全志F1C200S嵌入式驱动开发(spi-nor驱动)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 和v3s一样,f1c200s本身也支持spi-nor flash。当然,不管是norflash,还是nandflash,都是为了能够让程序脱离sd卡,直接依靠板子上面的flash,就可以完成正常地加载和运行工作。tf…

flutter开发实战-jsontodart及 生成Dart Model类

flutter开发实战-jsontodart及 生成Dart Model类。 在开发中,经常遇到请求的数据Json需要转换成model类。这里记录一下Jsontodart生成Dart Model类的方案。 一、JSON生成Dart Model类 在开发中经常用到将json转成map或者list。通过json.decode() 可以方便 JSON 字…

华为数通HCIP-BGP基础

AS(自治系统/路由域) 定义:运行相同路由协议,具有相同管理规则的区域(一般为一个企业网); 指具有相同路由管理策略的区域合集,一般为一个园区网; 标识:…

制作一个简易的计算器app

1、Ui开发 笔者的Ui制作的制作的比较麻烦仅供参考,在这里使用了多个LinearLayout对屏幕进行了划分。不建议大家这样做最好使用GridLayout会更加快捷简单 笔者大致划分是这样的: 使用了四个大框,在第四个大框里面有多个小框 最终界面如下&am…

机器学习 day31(baseline)

语音识别的Jtrain、Jcv和人工误差 对于逻辑回归问题,Jtrain和Jcv可以用分类错误的比例,这一方式来代替单单只看Jtrain,不好区分是否高偏差。可以再计算人类识别误差,即人工误差,作为基准线Jtrain与baseline对比只高了…

鸿合一体机怎么系统还原

系统还原方法:先用牙签按住电脑还原按钮不松,然后按一下电源按钮开机,直到电脑进入系统还原画面,就可以松开还原按钮了,系统还原完成后会自动重启,重启完成就可以用了。

YOLOv7改进:CVPR 2023 | SCConv: 即插即用的空间和通道重建卷积

1.该文章属于YOLOV5/YOLOV7/YOLOV8改进专栏,包含大量的改进方式,主要以2023年的最新文章和2022年的文章提出改进方式。 2.提供更加详细的改进方法,如将注意力机制添加到网络的不同位置,便于做实验,也可以当做论文的创新点。 2.涨点效果:添加 SCConv,经过测试,有效涨点。…

UE5 用DLL文件制作第三方插件

本篇博文介绍了,如果在UE 中如何使用第三方库,及制作成插件的方法。 DLL 文件是上篇文章中创键的具体的方法见上篇文章。下面开始介绍方法 首先,创建一个空白的 UE5 C 项目,然后再创建一个空白内容的插件,如下图所示 …

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)六:后台主页功能实现下

一、本章内容 接上一章,继续实现后端主页内容,主要实现工具栏对应相关内容的实现,包括系统消息、系统公告、全屏切换、语言切换、主题切换等。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管理系统合集…

微服务学习笔记-----Nacos安装教程(Windows和Linux版本)

Nacos安装教程 Nacos安装指南1.Windows安装1.1.下载安装包1.2.解压1.3.端口配置1.4.启动1.5.访问 2.Linux安装2.1.安装JDK2.2.上传安装包2.3.解压2.4.端口配置2.5.启动 3.Nacos的依赖 Nacos安装指南 1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的Git…

ClickHouse(一):ClickHouse介绍及OLAP场景特征

目录 1. ClickHouse与其特性 ​​​​​​​2. 什么是ClickHouse ​​​​​​​3. OLAP场景的特征 进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! ​​​​​​​1. ClickHouse与其特性 …

Spring Cloud Eureka 服务发现速度慢配置优化总结

文章目录 一、 Eureka-server 服务端缓存问题1.1 服务端缓存1.2 客户端从服务端获取实例数据的过程1.3 优化 二、客户端 Eureka-client 缓存导致2.1 Eureka客户端和服务端交互缓存2.2 Ribbon 缓存了EurekaClient的缓存2.3 优化 使用Eureka时,常常会发现服务发现慢&a…

8款常用系统镜像烧录软件

系统烧录软件是一种用于将操作系统或其他软件程序安装到嵌入式系统、嵌入式设备或存储设备中的工具。它通常用于将预先编译好的二进制文件或源代码烧录到硬件设备的非易失性存储器中,例如闪存芯片、EEPROM、EPROM或其他存储介质。系统烧录软件提供了一个便捷的方式&…

基于深度神经网络的肺炎检测系统实现

一、说在前面 使用AI进行新冠肺炎图像诊断可以加快病例的诊断速度,提高诊断的准确性,并在大规模筛查中发挥重要作用,从而更好地控制和管理这一流行病。然而,需要强调的是,AI技术仅作为辅助手段,最终的诊断决…

Unity Shader 消融效果

消融效果 消融广泛运用于各种场合,例如 怪物击杀与道具时区(原神)燃烧 注意:根据噪声图的不同,效果有很大的差异, 第一步:创建着色器 我们要选择Unlit Shader创建 然后定义如下属性 Prop…

Spring MVC 是什么?

一、什么是 Spring MVC? 官方对于 Spring MVC 的描述是这样的: Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, “Spring Web …

【教程】查看CPU、GPU架构的拓扑结构和系统信息

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 一些概念 Package:处理器封装。在多处理器系统中,每个物理 CPU 芯片通常被封装在一个单独的封装中,这个封装被称为 Package。一个 Package 可以包含一个或多个物理 CPU 核心。…

一站式解决方案:Qt 跨平台开发灵活可靠

Qt 是一种跨平台开发工具,为开发者提供了一站式解决方案。无论您的项目目标是 Windows、Linux、macOS、嵌入式系统还是移动平台,Qt 都能胜任。这种跨平台的特性不仅节省开支,还推动了战略的快速落地。 适用范围广泛:Qt 可在多种操…

ArgoCD结合Gitlab交付项目到kubernetes集群

ArgoCD结合Gitlab交付项目到kubernetes集群 作者:行癫(盗版必究) 一:环境准备 1.kubernetes集群环境 2.HA_Argocd环境 3.Gitlab集群环境 二:项目配置 1.配置Gitlab 创建仓库,并写入yaml文件,利用yaml构建application;此案例结合了NFS实现持久化存储

平板用的触控笔什么牌子好?ipad第三方电容笔推荐

随着技术的发展,出现了各种各样的平板电容笔。一支好的电容笔,不但可以极大地提升我们的工作效率,还可以极大地提升我们的学习效果。平替的电容笔,无论是在技术方面,还是在质量方面,都还有很大的提升空间&a…