LSTM时间序列预测

news2024/12/26 15:28:16

本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:【1】演示:基于LSTM深度学习网络预测时间序列(MATLAB工具箱)_哔哩哔哩_bilibili

% Forecast of time series based on LSTM deep learning network 
% (supporting multiple time series)
% 基于LSTM深度学习网络对时间序列进行预测(支持多元时间序列)

% Requires:  Windows computers and  MATLAB version 2021a or later!
% Deep Learning Toolbox is also needed.
% Unzip the code before running it and don't forget to change current folder.
% 要求:Windows电脑和MATLAB 2021a版本或更高版本!
% 还需要深度学习工具箱 Deep Learning Toolbox
% 运行代码前要解压压缩包,不要忘记更改当前文件夹


P_LSTM_Main_Function


% The language of the interface can be switched in the bottom 
% right corner of the toolbox, supporting Chinese and English.
% 工具箱右下角可以切换界面的语言,支持中文和英文。

一、导入数据

时间序列不需要时间(包括一元时间序列和多元时间序列),若有时间则可以将时间删去,同时数据里允许有缺失值。

若存在缺失值,则会提供三种方法来解决,一般来说是用三次样条插值。可根据插值后的图像来决定用哪种方法,如果发现样条插值后的图像差异较大,可考虑使用前两种方法,如下图:

若是指标较多,可以使用堆叠折线图。

二、两种预测模式

选择不同的模式得到的结果不一样,如下图:

说白了就是先对模型进行调参,然后将得到的最优参数带入进行训练。调参就是第二种模式,将数据集划分成训练集和测试集,测试集包含的样本数是多少,就有多少样本拿来被测试,然后就可以得到准确度。

三、设计LSTM网络

这里直接将鼠标移到对应的数值上,即可知道对应参数的意思。

通常来说LSTM层一层就够了,如果预测的效果不好再加大。

可以将生成的网络图(使用deepNetworkDesigner查看网络)放在论文中,该图比较精美。

四、Adam优化算法的参数设置

将这里的介绍修改后放入自己的论文。文中的伪代码,模型优缺点一样。

五、开始训练

 在训练的时候,考虑到训练的时间可能较久,若迭代曲线趋于平稳,则差不多可以停止训练了。

 训练完成:

六、汇报最终结果

6.1 调参过程中的的汇报

有很多个参数,可以重点考虑R2,在这里训练集效果一般,测试集效果太差了。。。。。可能是出现了过拟合。需要修改参数。

下图为回归系数图,第一个图为训练集的图,第二个为测试集的图,第三个为将所有数据进行训练的图。其中,重点关注R2和系数,系数越接近1越好,第一个图系数为0.49719,其他两个同理。

下图为几个数据集上的拟合图。

自动调参模块设置了几个学习率和隐藏单元,根据这两个组合从而找到最优的一次参数。训练次数即为这两个参数各自的集合个数相乘,如设置了学习率有两个,隐藏单元有两个,则训练次数为4次。

训练完成后,会得到一个最佳参数的热力图。同时会自动将最优参数写进去。

6.2 调参完成的汇报

在调完参后,就可以用所有的数据来训练模型了。当再次训练完模型后,即可汇报以下这些图像。

没有导出代码。

若想在参考文献中引用这个工具箱,可以在LSTM预测时间序列工具箱链接里复制里面的文献参考。

个人总结:先对模型进行调参,调参后会得到最优的学习率和隐藏单元数量,然后查看训练的结果(误差直方图,回归图等等)好不好,不好的话则对其他参数进行调整,直到得到一个较满意的结果,然后再基于最好的参数来训练所有的数据及预测,最终得到结果,关于这个结果,有RMSE,R2等等评价指标,可以选择其中表现较好的拿去论文中展示(前面模型的调参同理)。

 

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

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

相关文章

win 下使用 cmd 运行 jar 包

1、使用 Win R 输入 cmd 命令打开命令提示符 2、在 cmd 窗口中输入以下命令 java -jar xxxxxx.jar 运行 jar 包,控制台出现中文乱码 原因是 windows 默认使用 GBK 编码格式,程序使用 UTF-8 编码格式 将编码格式改为 UTF-8 编码,在 cmd 窗…

C#中IsNullOrEmpty和IsNullOrWhiteSpace的区别?

前言 今天我们一起来探讨C#中两个常用的字符串处理方法:IsNullOrEmpty和IsNullOrWhiteSpace。这两个方法在处理字符串时非常常见,但是它们之间存在一些细微的区别。在本文中,我们将详细解释这两个方法的功能和使用场景,并帮助您更…

Qt Quick程序的发布|Qt5中QML和Qt Quick 的更改

# Quick程序的发布旧版做法 # Qt5中QML和Qt Quick 的更改 1.QML语言的更改(Qt4->Qt5) 在QML语言中,只有少量更改会影响QML代码的迁移:无法直接导入单独的文件(例如:import"MyType.qml”),需要导人该文件所在的目录; JavaScript文件中的相对路径被解析…

webassembly003 whisper.cpp的python绑定实现+Cython+Setuptools

python绑定项目 官方未提供python的封装绑定,直接调用执行文件 https://github.com/stlukey/whispercpp.py提供了源码和Cpython结合的绑定 https://github.com/zhujun1980/whispercpp_py提供了ctype方式的绑定,需要先make libwhisper.so Pybind11 bi…

你真的会数据结构吗:顺序表

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ 又和大家见面啦!在大家看到这个标题的时候其实就已经发现了:我们的C语言的基础知识大…

Shell脚本的if条件语句

目录 1.单分支结构 2.双分支结构 3.多分支结构 4.例题 1.单分支结构 实际上使用“&&”和“||”逻辑测试已经可以完成简单的判断并执行相应的操作,但是当需要选择执行的命令语句较多时,这种方式将使执行代码显得很复杂,不好理解。…

gdzwfw某省公共资源交易平台逆向学习

声明:本文中网站仅为学习技术使用,请勿暴力爬取数据。 学习地址:aHR0cHM6Ly95Z3AuZ2R6d2Z3Lmdvdi5jbi8jLzQ0L2p5Z2c 此网站采用请求头反爬,难点是请求头中几个参数是如何生成的(别问为什么知道是请求头,一…

学单片机前先学什么?

学单片机前先学什么? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&#xff…

77_组合

描述 给定两个整数 n 和 k,返回范围[1, n]中所有可能的 k 个数的组合。 你可以按任何顺序返回答案。 思路 数组问题 从横向上来看往往有 遍历、滑动窗口、动态规划等思路。但是,其实在遍历这种横向取数过程中,可以根据条件的判断形成树形操作…

一键拥有你的GPT4

这几天我一直在帮朋友升级ChatGPT,现在已经可以闭眼操作了哈哈😝。我原本以为大家都已经用上GPT4,享受着它带来的巨大帮助时,但结果还挺让我吃惊的,还是有很多人仍苦于如何进行升级。所以就想着写篇教程来教会大家如何…

山西电力市场日前价格预测【2024-01-24】

日前价格预测 预测说明: 如上图所示,预测明日(2024-01-24)山西电力市场全天平均日前电价为320.98元/MWh。其中,最高日前电价为480.67元/MWh,预计出现在18:30。最低日前电价为0.00元/MWh,预计出…

RabbitMQ交换机与队列

交换机 RabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至都不知道这些消息传递传递到了哪些队列中。 相反, 生产者只能将消息发送到交换机(exchange),交换机工作的内容非常简单&#xff0c…

3.chrony服务器

目录 1. 简介 1.1. 重要性 1.2. Linux的两个时钟 1.3. 设置日期时间 1.3.1. timedatectl命令设置 1.3.2. date命令设置 1.4. NTP 1.5. Chrony介绍 2. 安装与配置 2.1. 安装: 2.2. Chrony配置文件分析 2.3. 同步时间服务器 2.3.1. 授时中心 2.3.2. 实验…

基于机会网络编码(COPE)的卫星网络路由算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1机会网络编码(COPE)概述 4.2COPE算法原理 4.2.1 编码机会预测 4.2.2 编码决策 4.2.3 数据包编码 4.2.4 数据包传输 4.2.5 数据包解码 5.完整程序 1.程序功能…

notepad++ v8.5.3 安装插件,安装失败怎么处理?下载进度为0怎么处理?

notepad v8.5.3 安装插件,安装失败?下载进度为0,怎么处理? 安装 进度 进度条没有进度 ,然后就退出了,自动打开程序,不知道什么问题,插件管理下面也没有插件显示 找到问题了&#x…

【python文件】生成的csv文件没两行数据之间有一个空行

问题描述 用python代码将数据写入csv文件,但生成的csv文件没两行数据之间有一个空行,如下图所示: 解决办法 在open函数中添加newline,如以下代码所示,即可解决这一问题。 with open(r"C:\Users\xxx\Desktop\DR…

PPP协议原理介绍+报文分析+配置指导-RFC1661

个人认为,理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息,更加便于理解协议。 因此本文将在PPP协议报文的基础上进行介绍。 关于PPP协议基本原理,可参考RFC1661-The Point-to-Point Protocol (PPP)。 关于P…

建议CSDN不要这样吃人xue馒头

程序员裁员潮:技术变革下的职业危机 2023年以来,谷歌、阿里巴巴各个科技公司都在裁员,程序员的日子也不好过。 讨论在技术变革下,裁员对于程序员的影响到底有多大,是非常有意义的话题,但是为什么要用“一…

QT下载、安装详细教程[Qt5.15及Qt6在线安装,附带下载链接]

QT5.15及QT6的下载和安装 1.下载1.1官网下载1.2国内镜像网站下载 2.安装3.软件启动及测试程序运行3.1Qt Creator(Community) 1.下载 QT自Qt5.15版本后不在支持离线安装包下载(非商业版本,开源),故Qt5.15及Qt6需要使用在线安装程序…

AppDesigner语音滤波器设计——IIR、IIR、维纳滤波、卡尔曼滤波、自适应滤波

1.AppDesigner简介 App Designer是一个可视化的集成开发环境,提供了仪表、旋钮等组件,采用面向对象的设计方法。利用App Designer可以快速开发出应用程序。App Designer提供了各种UI组件,如按钮、文本框、图表等,以及用于布局和设…