当前位置: 首页 > news >正文

时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测

时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测

目录

    • 时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测
      • 效果一览
      • 基本介绍
      • 模型介绍
        • LSTM模型
        • SVR模型
        • LSTM-SVR模型
      • 程序设计
      • 参考资料
      • 致谢

效果一览

1
2
3
4

基本介绍

本次运行测试环境MATLAB2018b;
MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测;主要研究问题不限于交通预测、负荷预测、气象预测、经济预测等。LSTM和SVR组合预测,结合LSTM序列提取优势和SVR非线性提取优势,组合预测具体介绍如下。

模型介绍

提出了一种基于长短时记忆神经网络算法的支持向量机(LSTM-SVR)的预测方法,为了保证支持向量机预测结果的准确性,选用网格搜索法对支持向量机参数进行优化处理。为了减小在预测算法中,由于误差的传递导致最终预测结果与实际结果产生较大偏离,在预测运算过程中对采用长短时记忆神经网络组合预测,对预测结果进行组合。

LSTM模型

  • LSTM 属于循环神经网络( recurrent neural network,RNN) 的一种,其特殊之处在于RNN 仅具有记忆暂存的功能,LSTM 兼具长短期记忆功能,LSTM 解决了RNN 的长期依赖问题,其特点是在RNN 各层结构单元中添加了输入门、遗忘门和输出门等闸门。通过“门”控制记忆状态、存储任意时间和距离的信息,解决了RNN 神经网络只有短期记
    忆、没有长期记忆的问题。
    1
  • LSTM 在t 时刻的输入为xt,输出为yt,神经元记忆状态为st,其输出门it、遗忘门ft、输出门ot;
  • 构建基于长短期记忆网络负荷预测模型,包括数据处理、计算激活函数、调整参数、训练模型、评价结果等。
  • 数据预处理,分别对冲击性负荷影响因素、稳定性负荷影响因素进行数据归一化处理,使其数值为[0,1];
  • 按照网络各层之间的权重参数,网络的第t层,其权重参数( wt
    ,bt) 由上一层的数据决定。
  • 将上一层输入输出作为LSTM 网络模型的输入和输出进行训练,调整模型参数,代价函数为平方重构误差。
  • 完成训练过程后,利用负荷数据,通过LSTM 模型输出结果,将得到的负荷预测结果进行反归一化处理,得到负荷真实预测值。
  • 将得到的负荷预测值与实际负荷进行对比,采用相对误差作为衡量标准,衡量LSTM网络模型的预测准确性。

SVR模型

  • SVM 算法是一种基于最小化结构风险的机器统计学习理论,通过间隔最大化的学习策略,最终转化为一个凸二次规划问题的求解。
  • SVM 在预分析中具有适应小样本学习和强鲁棒性的特点,能补充基于长短期记忆网络算法对大量样本的需求。
  • SVR是SVM用于回归的任务。
  • 通过直接法或间接法构造合适的回归任务,将某时刻下的影响因素
    视为回归的依据,而该时刻负荷的预测值视为最终回归结果的标签。主要的预测过程如下。
  • 数据处理与归一化,输入数据与2.1 节中相同,采用相同的预处理方式。
  • 利用试验查找方法,得到最佳惩罚参数C、核函数和不敏感损失函数ε。
  • 仿真测试,输入参数,进行仿真测试。
  • 数据反归一化,得到数据预测值。
  • 将得到的负荷预测值与实际负荷进行对比,采用相对误差作为衡量标准,衡量SVM 模型的预测准确性。

LSTM-SVR模型

  • LSTM 算法时序性强,能够充分挖掘历史数据的规律,其缺点是要求样本的数量多; SVM 算法具有非线性映射和小样本学习的优势,但时序性差。
  • 为充分融合二者的优势提出融合LSTM 和SVM 算法的钢铁电力短期负荷预测,权重分配采用最小二乘算法。

2
3

程序设计

  • 完整程序和数据下载:私信博主。
  • 主程序
nwhole=length(data);   
%计算数据长度
train_ratio=0.90;
ntrain=round(nwhole*train_ratio);
%% CDM
options = optimset;
[W_train,E_train] = fmincon(@(W)ObjectFunction(W,R_train,LSTM_train,SVM_train),W0,LPA,LPB,Aeq,Beq,LB,UB,NONLCON,options);
[W_test,E_test]   = fmincon(@(W)ObjectFunction(W,R_test,LSTM_test,SVM_test),W0,LPA,LPB,Aeq,Beq,LB,UB,NONLCON,options);
fprintf('W_LSTM_test=%f,W_SVM_test=%f',W_test(1),W_test(2))
C_test =W_test(1)*LSTM_test  +W_test(2)*SVM_test;
fprintf('\n\n');
%% 数据输出
%-------------------------------------------------------------------------------------
disp("——————组合模型预测结果——————————")
disp("组合模型预测值   真实值  组合模型误差 组合模型相对误差 ")
disp([C_test  R_test C_error_test C_pererror_test])
disp('预测绝对平均误差MAE');
disp('LSTM  SVM 组合模型');
disp([LSTM_MAE  SVM_MAE  C_MAE]); 
disp('预测平均绝对误差百分比MAPE');
disp('LSTM  SVM 组合模型');
disp([LSTM_MAPE  SVM_MAPE  C_MAPE]); 
disp('预测均方误差MSE')
disp('LSTM  SVM 组合模型');
disp([LSTM_MSE  SVM_MSE  C_MSE]); 
disp('预测均方根误差RMSE')
disp('LSTM  SVM 组合模型');
disp([LSTM_RMSE  SVM_RMSE  C_RMSE]); 

W_LSTM_train=0.780212,W_SVM_train=0.219788
——————组合模型预测结果——————————
预测绝对平均误差MAE
LSTM SVM 组合模型
9.7268 10.3683 9.1884
预测平均绝对误差百分比MAPE
LSTM SVM 组合模型
0.0052 0.0056 0.0049
预测均方误差MSE
LSTM SVM 组合模型
1.0e+04 *
1.1857 1.3478 1.0736
预测均方根误差RMSE
LSTM SVM 组合模型
108.8883 116.0951 103.6134

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/120621147?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/120406657?spm=1001.2014.3001.5502

致谢

  • 大家的支持是我写作的动力!
  • 感谢大家!

相关文章:

时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测

时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测 目录时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测效果一览基本介绍模型介绍LSTM模型SVR模型LSTM-SVR模型程序设计参考资料致谢效果一览 基本介绍 本次运行测试环境MA…...

分阶段构建golang运行环境Dockerfile镜像

在开始这项工作之前大家可以先去看一下docker官方给出关于空镜像scratch的说明,采用官方简单的一句话就是:scratch是一个明确的空图像,特别是对于“从头开始”构建图像。分阶段构建镜像就会用到scratch这个空镜像,这样的好处是可以…...

Vue-cli脚手架在做些什么(源码角度分析)

什么是Vue脚手架?在学习初期,我们的项目往往需要借助webpack、vite等打包工具配置Vue的开发环境,但是在真实开发中我们不可能每个项目从头来完成所有的webpack配置,这样显得开发的效率会大大的降低;所有的真实开发中&a…...

【Nginx】|入门连续剧——安装

作者:狮子也疯狂 专栏:《Nginx从入门到超神》 坚持做好每一步,幸运之神自然会降临在你的身上 目录一. 🦁 前言Ⅰ. 🐇 为啥我们要使用Nginx?二. 🦁 搭建流程Ⅰ. 🐇 环境准备Ⅱ. &…...

从0开始学python -38

Python3 面向对象-1 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对…...

算法设计与分析期末考试复习(二)

分治法 将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。最好使子问题的规模大致相同。 分解(Divide):将一个难以直接解决的大问题,分割成一些规模较小的子…...

九龙证券|4D毫米波雷达成市场新宠,相关概念股大涨,会贡献多少业绩?

近日,4D毫米波雷达成为A股新宠,相关概念股如经纬恒润(688326.SH)一周内涨幅接近20%,威孚高科(000581.SZ)5个买卖日内涨幅超越25%。 有音讯称特斯拉将在3月1日投资者活动日会宣告新款Model 3的全…...

Git天天用,不得不看的那些事

作为一个工作两年的开发同学,git是每天都要接触的工具。但IDEA对git的封装已经满足了日常的代码提交需求,所以一直是以点点点的形式进行代码提交与更新,几乎没用命令行提交过(现在想来也是有些惭愧),对于gi…...

IDE 文档注释使用,模板注释,ide配置templates

文档注释基于javadoc模板 类注释 /*** 暂无介绍** author admin* version 1.0.0* <dt><span class"simpleTagLabel">时间:</span></dt>* <dd>2023/2/24</dd>*/方法注释 /*** 暂无描述** author admin* param args */javadoc相…...

力扣-查询近30天活跃用户数

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;1141. 查询近30天活跃用户数二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.其他总结前言 一、题目&…...

企企通聚源池| 聚合海量资源全网寻源,赋能供采双方撮合交易

目前&#xff0c;我们正处于一个飞速发展的信息时代&#xff0c;随着大数据时代的来临&#xff0c;在企业的日常经营中&#xff0c;数据无处不在&#xff0c;各类数据的采集、整合、分析对企业的发展、决策有着十分重要的作用。数据管理作为企业一项重要的建设工作&#xff0c;…...

【算法数据结构体系篇class09】:链表问题:快慢指针、回文结构、复制、中点,分区、相交

一、链表解题的方法论 1)对于笔试&#xff0c;不用太在乎空间复杂度&#xff0c;一切为了时间复杂度2)对于面试&#xff0c;时间复杂度依然放在第一位&#xff0c;但是一定要找到空间最省的方法二、链表常用数据结构和技巧1&#xff09;使用容器(哈希表、数组等)2&#xff09;快…...

实验室信息化管理行业方案

为适应新时代下的管理机制与应用场景&#xff0c;越来越多的检测实验室需对研发部门和实验部门进行全面的、现代化的、电子化的综合管理&#xff0c;帮助检测机构对实验室的规划与计划、项目立项与管理、项目成果、合同&#xff0c;以及基建等工作进行统一的管理&#xff0c;而…...

docker学习

docker 环境搭建 MySql # mysql5.7 docker run --name mysql10 -p 3306:3306 -v D:\MySql\conf:/etc/mysql/conf.d -v D:\MySql\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7docker run --name mysql10 -p 3306:3306 -v /etc/mysql/conf.d:/etc/mysql/co…...

Linux 常用命令

重启 # 重启&#xff08;root 用户操作&#xff09; reboot# 强制重启 reboot -f关机 # 关机 # shutdown [OPTION] [TIME] [MESSAGE] shutdown-h 关机 -r 重启-c 取消上一个命令 第二个参数指的是多少分钟后执行操作&#xff0c;以分钟为单位&#xff0c;如果不加时间&am…...

数据结构-顺序表(2)

目录 1. 线性表 2. 顺序表 2.1 动态顺序表 3. 接口实现 前期工作 3.1 初始化、销毁与检查容量 3.1.1 初始化 3.1.2 销毁 3.1.3 检查容量 3.2 尾插 3.3 尾删 3.4 头插 3.5 头删 3.6 插入 3.7 删除 顺序表源码 SeqList.h SeqList.c test.c 写在最后&#xff…...

初学C/C++内存管理--new和delete的使用

一&#xff0c;内存分布 栈区&#xff1a; 一般的局部变量和函数的返回数据以及返回地址&#xff0c;函数的参数都在战栈区上开辟空间。栈区开空间一般由编译器自动管理&#xff0c;出了生命周期自动释放。也可以通过一些方式自己手动开辟栈区空间&#xff0c;不过一般用不到…...

【Java】volatile

一、volatile volatile是Java虚拟机提供的轻量级的同步机制&#xff0c;它有&#xff13;个特性&#xff1a; &#xff11;&#xff09;保证可见性 &#xff12;&#xff09;不保证原子性 &#xff13;&#xff09;禁止指令重排 当写一个volatile变量时&#xff0c;JMM会把该…...

混沌工程 Chaos Mesh 实践经验(持续更新)

使用 k8s JVM故障 Linux内核版本 Linux 系统内核必须为 4.1 及以上版本。 不然会一直失败&#xff0c;可以从Chaos Mesh dashboard前端看到。 对native方法注入故障无效 实测对Thread.sleep(Long) 注入故障无效&#xff0c;猜测是因为对native方法无效&#xff0c;大概因为…...

追梦之旅【数据结构篇】——详解C语言实现链栈

详解C语言实现链栈~&#x1f60e;前言&#x1f64c;整体实现内容分析&#x1f49e;1.头文件编码实现&#x1f64c;2.功能文件编码实现&#x1f64c;3.测试函数功能代码&#x1f64c;总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...