首页 > 其他分享 >VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比

时间:2024-12-24 22:02:19浏览次数:4  
标签:预测 BiLSTM VMD train 序列 SSA

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比

目录

预测效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本介绍

1.MATLAB实现VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比;
2.单变量时间序列预测 就是先vmd把变量分解变成很多维分别用BiLSTM预测 ;
3.运行环境Matlab2018b及以上,输出RMSE、R2、MAPE、MAE等多指标对比,
先运行vmdtest,进行vmd分解;再运行VMD_SSA_BiLSTM,三个模型对比;
VMD-SSA-BiLSTM、VMD-BiLSTM以及BiLSTM在时间序列预测中都有其独特的应用和价值。
BiLSTM时间序列预测
BiLSTM(双向长短期记忆网络)是一种适用于序列数据建模的深度学习网络,具有记忆长时依赖关系的能力。它通过双向结构,更好地捕捉序列数据中的动态特征。在时间序列预测中,BiLSTM被广泛应用于各种场景,如电力负荷预测、风速预测等。其优势在于能够处理长序列和长期依赖关系,通过双向信息流捕捉序列中的上下文信息,从而提高模型性能。
VMD-BiLSTM时间序列预测
VMD(变分模态分解)是一种信号处理技术,能够将信号分解成多个本征模态函数(IMF),每个IMF代表了信号在不同频率范围的振动特征。VMD-BiLSTM模型结合了VMD和BiLSTM的优势,首先使用VMD对原始时间序列数据进行分解,得到多个IMF成分,然后将这些IMF成分作为输入序列构建适合BiLSTM模型的序列数据。通过这种方式,VMD-BiLSTM模型能够更准确地捕捉时间序列数据的内在特征,提高预测精度。VMD-BiLSTM模型展现出了良好的预测性能。通过VMD分解,模型能够更有效地处理非线性和非平稳信号,提高预测的准确性和可靠性。
VMD-SSA-BiLSTM时间序列预测
VMD-SSA-BiLSTM模型在VMD-BiLSTM的基础上引入了SSA优化算法。VMD-SSA-BiLSTM模型的优势在于结合了信号处理、优化算法和深度学习技术的优势,能够更有效地处理和预测具有复杂动态特性的时间序列数据。通过VMD和SSA的联合应用,模型能够更准确地捕捉到信号的内在结构和变化趋势,而BiLSTM则能够利用这些信息进行准确的预测。VMD-SSA-BiLSTM模型在电力负荷预测、风速预测等应用中具有更高的预测精度和更强的鲁棒性。
总结
BiLSTM、VMD-BiLSTM和VMD-SSA-BiLSTM在时间序列预测中都有其独特的优势和应用价值。BiLSTM作为基础模型,能够捕捉序列数据中的动态特征;VMD-BiLSTM通过引入VMD技术,提高了模型对时间序列数据内在特征的捕捉能力;而VMD-SSA-BiLSTM则进一步引入了SSA优化算法,使得模型在复杂动态特性的时间序列数据预测中表现出更高的预测精度和鲁棒性。在实际应用中,可以根据具体需求和数据特点选择合适的模型进行预测。
在这里插入图片描述

程序设计

  • 完整源码和数据获取方式私信回复VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比

在这里插入图片描述



X = xlsread('北半球光伏数据.xlsx');

save origin_data X

L=length(X);%采样点数,即有多少个数据
t=(0:L-1)*Ts;%时间序列
STA=0; %采样起始位置,这里第0h开始采样

%--------- some sample parameters forVMD:对于VMD样品参数进行设置---------------
alpha = 2500;       % moderate bandwidth constraint:适度的带宽约束/惩罚因子
tau = 0;          % noise-tolerance (no strict fidelity enforcement):噪声容限(没有严格的保真度执行)
K = 5;              % modes:分解的模态数
DC = 0;             % no DC part imposed:无直流部分
init = 1;           % initialize omegas uniformly  :omegas的均匀初始化
tol = 1e-7         
%--------------- Run actual VMD code:数据进行vmd分解---------------------------
[u, u_hat, omega] = VMD(X(:,end), alpha, tau, K, DC, init, tol);



%  重构数据集
for i = 1: num_samples - kim - zim + 1
    res(i, :) = [reshape(X(i: i + kim - 1,:), 1, kim*or_dim), X(i + kim + zim - 1,:)];
end


% 训练集和测试集划分
outdim = 1;                                  % 最后一列为输出
num_size = 0.7;                              % 训练集占数据集比例
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim;                  % 输入特征维度


P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);

P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);

%  数据归一化
[P_train, ps_input] = mapminmax(P_train, 0, 1);
P_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128573597?spm=1001.2014.3001.5501

标签:预测,BiLSTM,VMD,train,序列,SSA
From: https://blog.csdn.net/kjm13182345320/article/details/144703805

相关文章

  • 车载网关性能 --- GW ECU报文(message)处理机制的技术解析
    我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的豁达,往不幸上面喷“......
  • 编译原理复习---SSA
    适用于电子科技大学编译原理期末考试复习。1.SSA的概念SSA(StaticSingleAssignment),即静态单赋值,是一种在编译过程中使用的中间表示形式,它要求每个变量在其生命周期内只被赋值一次。这种形式简化了编译器的分析和优化过程,使得数据流分析和优化算法变得更加简单和高效。SSA......
  • iPhone越狱版和免越狱版iMessages群发,iMessages短信,imessages推信群发实现原理
    Apple公司全线在macos与ios两个操作系统上内置了FaceTime与iMessage两个应用。完美替代运营商的短信与电话。并且FaceTime与iMessage的帐号不仅仅与AppleID绑定,同时也与使用这AppleID的手机号码绑定,这样的漏洞自然给无孔不入的群发垃圾信息商们提供了后门。这样iPhone的iMessa......
  • 瓦斯浓度预测 | 基于CNN-BiLSTM-ATTENTION瓦斯浓度预测附matlab代码
    预测效果研究概述瓦斯浓度预测|基于CNN-BiLSTM-ATTENTION瓦斯浓度预测附matlab代码基于CNN-BiLSTM-ATTENTION的瓦斯浓度预测是一种先进的预测方法。以下是对该方法的详细分析:基于CNN-BiLSTM-Attention的瓦斯浓度预测是一种先进的预测方法,结合了卷积神经网络(CNN)、双......
  • SpringBoot3整合FastJSON2如何配置configureMessageConverters
    在SpringBoot3中整合FastJSON2主要涉及到以下几个步骤,包括添加依赖、配置FastJSON作为JSON处理器等。下面是详细的步骤:1.添加依赖首先,你需要在你的pom.xml文件中添加FastJSON2的依赖。以下是Maven依赖的示例:<!--https://mvnrepository.com/artifact/com......
  • 苹果系统下无痕检测是否开启iMessage服务,iMessages数据筛选,iMessage蓝号检测协议版
    一、实现iMessage数据检测的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写程序控制......
  • Apache Cassandra数据库
    最佳参考:https://www.cnblogs.com/cjsblog/p/12863749.html教程:https://www.w3cschool.cn/cassandra/cassandra_introduction.htmlApacheCassandra是一个大规模可扩展的分布式开源NoSQL数据库。Cassandra使用了gossip协议ApacheCassandra使用Gossip协议在多个关键方......
  • 【Z函数】codeforces 2010 C2. Message Transmission Error (hard version)
    前言Z函数的定义对于一个字符串\(s\),定义Z函数\(Z[i]\)为以\(s[i]\)为起始位置的后缀与整个字符串\(s\)的最长公共前缀的长度。Z函数的应用字符串匹配问题题目https://codeforces.com/problemset/problem/2010/C2题意给定一个字符串\(s\),若其可以找到真前缀......
  • 独家原创 | CEEMDAN-Transformer-BiLSTM并行 + XGBoost组合预测
    往期精彩内容:时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较全是干货|数据集、学习资料、建模资源分享!EMD变体分解效果最好算法——CEEMDAN(五)-CSDN博客拒绝信息泄露!VMD滚动分解+Informer-BiLSTM并行预测模型-CSDN博客单步预测-风速预测模型代码全家桶-......
  • 【无标题】minio报minio API responded with message=Access denied on the resource
    确认MinIO服务状态首先,确保MinIO服务正在运行且可以访问。您可以通过直接访问MinIO的HTTP端口(默认为9000)来检查服务状态。例如,在浏览器中访问http://<MinIO服务IP>:9000或使用命令行工具如curl来进行测试。curlhttp://<MinIO服务IP>:9000/minio/health/live如果服......