LSTM时间序列预测
本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:【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等等评价指标,可以选择其中表现较好的拿去论文中展示(前面模型的调参同理)。
相关文章:
LSTM时间序列预测
本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:【1】演示:基于LSTM深度学习网络预测时间序列(MATLAB工具箱)_哔哩哔哩_bilibili % Forecast of time series based on LSTM deep learn…...
Rocky8 顺利安装 Airflow 并解决数据库报错问题
rocky是替代centos的服务器系统,稳定可靠。rocky8会比centos7新,可以支持更多服务软件的安装,免去升级各种库的麻烦,本文运行airflow服务就用rocky8系统。airflow是一个定时任务管理系统,功能强大,目前是ap…...
[足式机器人]Part2 Dr. CAN学习笔记- 最优控制Optimal Control Ch07-3 线性二次型调节器(LQR)
本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记 - 最优控制Optimal Control Ch07-3 线性二次型调节器(LQR) 1. 数学推导2. 案例反洗与代码详解 1. 数学推导 2. 案例反洗与代码详解...
Eyes Wide Shut? Exploring the Visual Shortcomings of Multimodal LLMs
大开眼界?探索多模态模型种视觉编码器的缺陷。 论文中指出,上面这些VQA问题,人类可以瞬间给出正确的答案,但是多模态给出的结果却是错误的。是哪个环节出了问题呢?视觉编码器的问题?大语言模型出现了幻觉&…...
汤姆·齐格弗里德《纳什均衡与博弈论》笔记(4)博弈论与人性
第五章 弗洛伊德的梦——博弈和大脑 大脑和经济学 曾经有一段时间——就像在弗洛伊德的年代——心理学家们无法准确地回答人类行为背后的大脑机制。但随着现代神经科学的兴起,情形改变了。比如,人类的情绪不再像过去一样是个谜。科学家们可以观察当人们…...
MacOS平台翻译OCR软件,双管齐下,还可自定义插件,为其添砖加瓦!
小编昨天为大家分享了Windows系统下的一款功能强大且免费的 OCR 开源工具 Umi-OCR。 今天则为大家推荐一款 MacOS系统下的一款 翻译 OCR 多功能双管齐下的桌面应用软件 Bob。这款软件虽然也上线了GitHub,但它不是一款开源软件,仓库只是作者为了用户反馈…...
使用docker配置semantic slam
一.Docker环境配置 1.拉取Docker镜像 sudo docker pull ubuntu:16.04拉取的为ununtu16版本镜像,环境十分干净,可以通过以下命令查看容器列表 sudo docker images 如果想删除多余的docker image,可以使用指令 sudo docker rmi -f <id&g…...
面试常问的Spring AOP底层原理
AOP底层原理可以划分成四个阶段:创建代理对象阶段、拦截目标对象阶段、调用代理对象阶段、调用目标对象阶段 第一阶段:创建代理对象阶段 通过getBean()方法创建Bean实例根据AOP的配置匹配目标类的类名,判断是否满足切…...
C++拾遗(四)引用与指针
引用和指针是两种不同的概念,尽管它们在某些方面有一些相似之处,但它们在功能和用途上是有所区别 声明与定义 引用:引用是别名,是对已存在变量的另一个称呼,一旦一个变量被引用,就不能再被引用其他变 量…...
k8s架构、工作流程、集群组件详解
目录 k8s概述 特性 作用(为什么使用) k8s架构 k8s工作流程 k8s集群架构与组件 核心组件详解 Master节点 Kube-apiserver Kube-controller-manager Kube-scheduler 存储中心 etcd Node Kubelet Kube-Proxy 网络通信模型 容器引擎 k8s核…...
CF1362C Johnny and Another Rating Drop(二进制、复杂度考虑)
看完数据范围 n ∈ [ 1 , 1 e 18 ] n\in[1,1e18] n∈[1,1e18]就可以先猜一下要不是可以直接推公式,不能暴力去做,更不能遍历一遍,又看到这种2进制的题目,要猜是不是 l o g log log级别的复杂度。 可以依次考虑每一位 所有 i % 2 …...
1 - 搭建Redis数据库服务器|LNP+Redis
搭建Redis数据库服务器|LNPRedis 搭建Redis数据库服务器相关概念Redis介绍安装RedisRedis服务常用管理命令命令set 、 mset 、 get 、 mget命令keys 、 type 、 exists 、 del命令ttl 、 expire 、 move 、 flushdb 、flushall 、save、shutdown 配置文件解析 LNP …...
米贸搜|Facebook“精准营销”越来越难?或许是“受众定位”没彻底搞清!
一、为何要确定目标受众 对于每个广告主而言,面向最有可能成为其客户的用户营销非常重要,因此,确定目标受众,是Facebook广告投放中极其重要的一环。 二、什么是目标受众? 目标受众是您希望向其传达营销信息…...
【C++】内存分区模型
目录 1.程序运行前 2.程序运行后 3. new操作符 3.1 基本语法 3.2 开辟数组 C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区: 存放全局变量和静态变量以及常量栈区 …...
通过strings二进制文件分析工具排查 version ‘GLIBC_2.25‘ not found 报错
strings命令简介 strings命令用于打印文件中可打印字符串, 可以打印文本文件、可执行程序,库文件等。一般用于分析可执行程序和库文件。strings命令较为常用的功能有以下两种 查看系统的GLIBC版本和目标文件的依赖的GLIBC版本,当系统的GLIBC版本与目标文…...
基于 MQTT 的开源桥接器:自由控制物联网设备 | 开源日报 No.151
Koenkk/zigbee2mqtt Stars: 10.5k License: GPL-3.0 Zigbee2MQTT 是一个 Zigbee 🐝 到 MQTT 桥接器 🌉,可以摆脱专有的 Zigbee 桥接器 🔨 允许您在不使用供应商桥接器或网关的情况下使用 Zigbee 设备通过 MQTT 桥接事件并控制 Z…...
【QT+QGIS跨平台编译】之七:【libjpeg+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
文章目录 一、libjpeg介绍二、文件下载三、文件分析四、pro文件五、编译实践一、libjpeg介绍 libjpeg是一个广泛使用的jpeg图像压缩和解压的函数库,采用 C 语言开发。 2013年1月,Independent JPEG Group发布了版本9,对新引入的无损编码模式进行了改进。2022年1月,发布了版…...
VI / VIM的使用
vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且 还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 x win…...
第十二站(20天):C++泛型编程
模板 C提供了模板(template)编程的概念。所谓模板,实际上是建立一个通用函数或类, 其 类内部的类型和函数的形参类型不具体指定 ,用一个虚拟的类型来代表。这种通用的方式称 为模板。 模板是泛型编程的基础, 泛型编程即以一种独立于任何特定…...
【Docker】Dokcer学习① - 简介
【Docker】Docker学习① - 简介 一、Docker简介1. Docker是什么2. Docker组成3. Docker对比虚拟机4. Linux Namespace技术5. Linux control groups6. 容器管理工具 二、Docker安装及基础命令介绍三、Docker镜像管理四、Docker镜像与制作五、Docker数据管理六、网络部分七、Dock…...
如何用Obsidian主页插件打造你的专属数字工作台?
如何用Obsidian主页插件打造你的专属数字工作台? 【免费下载链接】obsidian-homepage Obsidian homepage - Minimal and aesthetic template (with my unique features) 项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-homepage 你是否厌倦了每次打…...
Primr:开源AI研究代理,35分钟自动生成公司深度战略分析报告
1. 项目概述:Primr,一个将公司网站转化为深度战略分析的AI研究代理 如果你做过公司研究、市场分析或者投资尽调,你肯定知道那有多痛苦。打开浏览器,输入公司网址,在“关于我们”、“产品”、“新闻”和“博客”之间来…...
从‘古董’到统一:聊聊Linux内核中buffer与cache合并背后的那些事儿(附free命令实战)
从‘古董’到统一:Linux内核中buffer与cache合并背后的设计哲学 在Linux系统的性能优化领域,free命令的输出一直是开发者关注的焦点。当你键入free -h时,那行看似简单的"buff/cache"统计背后,隐藏着一段跨越二十年的内…...
保姆级教程:在Windows 10上搞定QGroundControl 4.2源码编译与打包(附VS+QT配置)
Windows 10下QGroundControl 4.2开发环境全栈搭建指南 第一次接触无人机地面站开发时,我被QGroundControl强大的功能所吸引,但配置开发环境的过程却让我踩了不少坑。从VS安装版本选择到QT组件配置,再到最后的打包发布,每个环节都可…...
MMC柔性直流输电稳定性与参数控制【附代码】
✨ 长期致力于模块化多电平换流器、弱交流电网、小信号模型、控制器参数优化、粒子群算法、模糊控制研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)弱…...
Obsidian+Cursor构建AI增强型项目规划与开发一体化工作流
1. 项目概述:构建你的数字项目规划中枢如果你和我一样,同时管理着好几个数字项目——可能是一个新的SaaS产品、一个开源工具,或者一个复杂的个人自动化脚本——你肯定体会过那种信息散落各处的痛苦。产品需求文档在Notion里,技术架…...
机器人伦理工程化:从道德困境到可解释决策系统的技术实现
1. 项目概述:当机器人需要做出道德抉择十年前,当我在实验室里调试一台协作机器人的碰撞检测算法时,一个从未预想过的问题出现了:在一条狭窄的通道里,机器人的移动路径上同时出现了一位匆忙的工程师和一个价值百万的实验…...
Kaggle竞赛提分利器:如何用Stacking融合XGBoost、LightGBM和CatBoost模型?
Kaggle竞赛进阶指南:Stacking融合三大梯度提升树的实战策略 在Kaggle竞赛中,当单一模型的性能触及天花板时,模型融合技术往往成为突破瓶颈的关键。不同于教科书式的理论讲解,本文将聚焦竞赛实战中的核心痛点——如何通过Stacking技…...
Redis_7_Streams与高可用集群实战
Redis 7.0 Streams与高可用集群部署实战 从消息队列到分布式架构,全面掌握Redis核心能力 前言 Redis不只是一个缓存数据库。Redis 5.0引入的Streams让它具备了消息队列的能力,Redis 7.0进一步增强了Streams的稳定性和性能。很多团队在用Kafka/RabbitMQ处理消息队列时,其实R…...
求职、谈合作、防踩坑:天眼查、企信宝、企查查,普通人到底该用哪个?
求职、谈合作、防踩坑:三大企业信息平台实战评测指南 在信息爆炸的时代,无论是求职面试、商务合作还是个人投资,提前了解企业背景已成为现代人的必备技能。天眼查、企信宝、企查查三大平台凭借海量企业数据,成为普通人获取商业情报…...
