基于EEMD+GRU+MLR的时间序列预测

article/2025/11/9 22:23:52

0、前言

      文章《基于 EEMD-GRU-MLR 的短期电力负荷预测》中,通过构建集合经验模态分解(ensemble empirical modedecomposition,EEMD)以及门控循环单元神经网络(gated recurrent unit neural network,GRU)和多元线性回归(multiplelinear regression , MLR) 组 合 而 成 的EEMD-GRU-MLR(EGM)预测方法,有效提高了电力负荷短期预测精度。具体理论可参考该文献。

1、EEMD+GRU+MLR组合时间序列预测方法亮点

①通过集合经验模态分解EEMD方法将序列分解为频率不同的若干个单一频率的本征模函数及余波(Residual),每一个本征模函数都代表了某一种时间尺度上的局部特征,充分挖掘了数据所包含的信息的同时又避免了局部特征之间的相互干扰。

②采用 GRU 神经网络多元线性回归MLR方法分别对不同频率的本征模函数进行多步迭代预测,将所得结果叠加还原,得到完整的预测曲线。频率较低的部分代表了负荷周期性较强的整体变化趋势,频率较高的部分代表了随机性较强的局部特征。

③对于周期性强、平滑的曲线,多元线性回归MLR相比神经网络SVR能够更容易得到精确的预值,其效果类似于采用线性函数作为激活函数的神经网络,但其无需繁琐的迭代训练过程与参数调整,因此,对于平滑的低频分量,使用多元线性回归MLR是相比其他方法更适合的选择。所以采用MLR对EEMD分解所得低频分量进行预测建模

④针对随机性较强的分量,多元线性回归MLR方法可能会产生无法收敛的情况,而 GRU 神经网络具有较强的非线性拟合能力,并且能够挖掘时间序列自身特征,使得预测结果尽可能准确。因此采用 GRU 神经网络方法来预测EEMD分解所得的高频分量

2、效果分析

       将文章所提方法进行复现,并将其与MLR、GRU单独建模和EEMD-GRU、EEMD-MLR组合建模方法进行对比。结果如下:(强调:本人验证所用数据与文章不一致,所以效果不可能一致!)。

         图1为原始功率序列,用前70%数据来训练,后30%来测试。测试序列的EEMD分解如图2。

图1

图2

        图3为MLR预测结果,图4为GRU预测结果。

图4

图5为EEMD+GRU预测结果:可以看出序列分解所得的低频平滑分量占比多,且MLR对低频分量的预测效果更好。因此最终结果EEMD+MLR也优于EEMD+GRU。

 图5

图6为EEMD+MLR预测结果:

 图6

      图7为EEMD+GRU+MLR预测结果:(注意:高频部分为GRU预测结果,低频部分为MLR预测结果)

      高低频划分依据参考的也是上述所提文献:根据所得分量的过零率,将分量划分为高频部分和低频部分,频率较低的部分代表了负荷周期性较强的整体变化趋势,频率较高的部分代表了随机性较强的局部特征。过零率定义为:在离散信号情况下,如果相邻的采样值具有不同的代数符号就称为发生了过零,过零次数与信号长度的比例定义为过零率。高低频判别阈值设置为0.01(过零率>=0.01为高频,反正为低频)。

        高频(GRU预测结果):

低频(MLR预测结果):

 最终预测结果:

 图7

 3 总结

       第2节验证了各方法的结果。注意,只是针对本人所用数据集,与所提文献数据集不同,所以结论也不会完全一致。

①对比 单一预测方法:MLR方法比GRU更合适,因为低频序列更多。

②对比联合建模方法:EEMD-MLR方法比EEMD-GRU方法更合适,与①对应;

③对比单一和联合方法:EEMD-MLR比MLR效果更好;EEMD-GRU比GRU更好。

④EEMD-MLR-GRU方法比EEMD-GRU方法更合适,但不及EEMD-MLR,是因为本人直接采用和文章一样的高低频划分方法和阈值,其实并不是很准确(应该根据实际情况划分高低频!),看图7就会发现被指定为高频的部分序列其实应该为低频。但由此也可以看出高低频划分结果也会影响最终结果(一个小小的改进点!)。

        结论:尽管在本人数据集上验证所得结果并不是EEMD-MLR-GRU最佳,并不与文章结论一致,但是本人对该文章所提方案(不仅仅是方法本身)还是认可的。抛开数据集影响,参数设置不同也会影响模型效果,所以不用纠结最终结果,应该发散思维去探索更合适的方案,探索更多的可能性。

        提示:信号多尺度分解部分可以用EMD\VMD\EEMD\CEEMD\WAVELET等各种方法,且均已实现。所提改进点也可以实现!

      

         


http://chatgpt.dhexx.cn/article/B9oNrQ5X.shtml

相关文章

机器学习的R实现(mlr包)

目录 Machine Learning with MLR Package 1. 获取数据 2. 探索数据 3. 缺失值填补 4. 特征工程 5. 机器学习 1. 二次判别分析,Quadratic Discriminant Analysis (QDA). 2.逻辑回归 Logistic Regression 3. 决策树-Decision Tree 4. 随机森林,Ra…

机器学习之MLR

线性回归(Linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为一元回归,大于一个自变量情…

MLR(mixed logistic regression)模型

基本形式 MLR模型是阿里巴巴12年提出(17年发表)点击率预估模型,它利用分段方式对数据进行拟合,相比LR模型,能够学习到更高阶的特征组合。其基本表达式如下 p ( y 1 ∣ x ) g ( ∑ j 1 m σ ( u j T x ) η ( w j …

MLR(mixed logistic regression)算法原理及实现

MLR(mixed logistic regression)算法 参考https://zhuanlan.zhihu.com/p/77798409?utm_sourcewechat_session 盖坤ppt : https://wenku.baidu.com/view/b0e8976f2b160b4e767fcfdc.html 原文:《Learning Piece-wise Linear Models from Large…

多元线性回归MLR

多元线性回归(MLR) 文章目录 多元线性回归(MLR)由极大似然估计(MLE, Maximum likelihood estimation)推导MSE简单导数知识推导解析解( θ ( X T X ) − 1 X T Y \theta (X^TX)^{-1}X^TY θ(XTX)−1XTY)来个例子试一试吧 不用解析解, 用梯度下降求解 θ \theta θ梯度下降法另…

MySql MVCC 详解

注意以下操作都是以InnoDB引擎为操作基准。 一,前置知识准备 1,MVCC简介 MVCC 是多版本并发控制(Multiversion Concurrency Control)的缩写。它是一种数据库事务管理技术,用于解决并发访问数据库的问题。MVCC 通过创…

MVCC总结

MVCC多版本并发控制 数据库中的并发分为三种情况: 读读:不存在任何问题,也不需要并发控制 读写:有数据安全问题,脏读,幻读,不可重复读 写写:有数据安全问题,可能存在…

Mysql中的MVCC

Mysql到底是怎么实现MVCC的?这个问题无数人都在问,但google中并无答案,本文尝试从Mysql源码中寻找答案。 在Mysql中MVCC是在Innodb存储引擎中得到支持的,Innodb为每行记录都实现了三个隐藏字段: 6字节的事务ID&#xf…

MVCC原理

在并发读写数据库时,读操作可能会不一致的数据(脏读)。为了避免这种情况,需要实现数据库的并发访问控制,最简单的方式就是加锁访问。由于,加锁会将读写操作串行化,所以不会出现不一致的状态。但…

MVCC机制

MVCC 1. MVCC是什么? MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC的具体…

MVCC实现原理

1、什么是MVCC mvcc多版本并发控制。 mvcc在mysql innodb中主要是为了提高数据库并发性能,用更好的方式去处理读写冲突,做到即使有读写冲突时,也能做到不加索,非阻塞并发读。。 2、实现原理: mvcc的实现是通过保存…

MySQL的MVCC及实现原理

一 概要 1.什么是 MVCC ? MVCC,全称 Multi-Version Concurrency Control ,即多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC 在 MySQL…

InnoDB MVCC 机制

本文详细的介绍了什么是MVCC?为什么要有MVCC?以及MVCC的内部实现原理:包括Undo Log的版本链是如何组织的,RR、RC两个级别下一致性读是如何实现的等。通过案例、插图,以最通俗易懂的方式,让你彻底掌握MVCC的…

mysql mvcc 实例说明_Mysql MVCC

一、MVCC概述 MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。整个MVCC多并发控制的目的就是为了实现读-写冲突不加锁,提高并发读写性能,而这个读指的就是快照度, 而非当前读,当前读实际上是一种加锁的…

MVCC

一、什么是MVCC MVCC(Multiversion concurrency control )是一种多版本并发控制机制。 二、MVCC是为了解决什么问题? 并发访问(读或写)数据库时,对正在事务内处理的数据做多版本的管理。以达到用来避免写操作的堵塞,从而引发读操…

MVCC详解

一、前言 全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。以下文章都是围绕InnoDB引擎来讲,因为myIsam不支持事务。 同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式…

MVCC 机制的原理及实现

什么是 MVCC MVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。 如此一来…

深入浅出:MVCC详解

什么是MVCC: MVCC(Multi Version Concurrency Control的简称),代表多版本并发控制。与MVCC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)。 MVCC最大的优势:读不加锁,读写不冲突。在读多写少…