2024/1/14周报

文章目录

  • 摘要
  • Abstract
  • 文献阅读
    • 题目
    • 问题与创新
    • 方法
      • A.CEMDAN方法
      • B.LSTM网络
      • C. CEEMDAN-LSTM模型
    • 实验过程
      • 数据集与数据预处理
      • 参数设置
      • 评价指标和参数
    • 实验结果
  • 深度学习
    • GRU
      • GRU前向传播
      • GRU的训练过程
  • 总结

摘要

本周阅读了一篇基于CEEMDAN-LSTM的金融时间序列预测模型的文章,文中提出了一种基于自适应噪声的完全集成经验模式分解(CEMDAN)和长短期记忆(LSTM)网络的金融时间序列预测模型,经过CEEMDAN分解、小波阈值去噪和重构,得到去噪后的信号。使用去噪信号代替原始信号作为LSTM网络的输入,可以获得更准确的最终预测结果,此外还对GRU的理论内容进行进一步的学习。

Abstract

This week, an article on the financial time series prediction model based on CEEMDAN-LSTM is readed. In this paper, a financial time series prediction model based on adaptive noise and fully integrated empirical mode decomposition (CEMDAN) and long-term and short-term memory (LSTM) networks is proposed. After CEEMDAN decomposition, wavelet threshold denoising and reconstruction, the denoised signal is obtained. Using the denoised signal instead of the original signal as the input of LSTM network can obtain more accurate final prediction results, and the theoretical content of GRU is studyed.

文献阅读

题目

Financial time series forecasting model based on CEEMDAN-LSTM

问题与创新

目前广泛使用的金融数据去噪方法是通过小波去噪等方法对整个序列进行去噪或平滑处理,然后将结果划分到两个不同的数据集中,通常被称为训练集和测试集。这实际上是在去噪过程中使用未来信息,可以提高历史数据的拟合度。然而使用未来的数据并不能真正提高预测能力。
本文提出了一种基于自适应噪声的完全集成经验模式分解(CEMDAN)和长短期记忆(LSTM)网络的金融时间序列预测模型。在实际应用中,未来的信息不能用于预测,因此引入滑动时间窗将原始序列分解为等长序列的簇。经过CEEMDAN分解、小波阈值去噪和重构,得到去噪后的信号。使用去噪信号代替原始信号作为LSTM网络的输入,将获得更准确的最终预测结果。以平安银行的股价数据为例,多种模型被用来预测其价格。结果表明,与标准LSTM模型和常用的结合经验模态分解的预测方法相比,所提出的CEEMDAN-LSTM模型具有更好的预测效果。在一段时间内使用滑动窗口对数据进行去噪更具有实际意义。

方法

A.CEMDAN方法

经验模态分解具有自适应性,克服了小波分解需要设置基函数的问题。EMD本质上是一个稳定化过程,它通过一个固定的模态将序列从不同尺度的平稳波动项和一个残差趋势项中分离出来,每个波动项称为固有模态函数(IMF)。原始信号S(t)可以用分解项的求和形式来描述。有以下等式:
在这里插入图片描述

IMFi(t)和R(t)分别表示第i个IMF,即残差函数。n表示IMF分量的总和。

CEEMDAN在EMD分解后加入带有辅助噪声的IMF分量,而不是直接将高斯白色噪声信号加入到原始信号中。 CEEMDAN分解中,在获得一阶IMF分量后进行整体平均计算,然后对剩余部分重复上述操作,有效地解决了白色噪声从高频向低频传递的问题。CEEMDAN算法可以描述如下:
(1) 将高斯白色噪声添加到原始信号
在这里插入图片描述

j ∈ [1,.,J],ωj(t)表示第j个具有正态分布的噪声信号,ω j为噪声系数。
(2) 对每个Sj(t)进行EMD分解,得到第一个IMF在这里插入图片描述 ,然后提取CEEMDAN的第一个IMF
在这里插入图片描述
(3) 计算去除第一模态分量后的残差R1(t):
在这里插入图片描述

(4) 重复(1)至(3),直至残留信号符合要求。原始信号可以表示为
在这里插入图片描述

信号经过CEEMDAN分解后,不能直接丢弃高频分量。可以对高频信号部分进行滤波去噪,然后利用去噪后的信号进行重构,既可以避免信息的大量损失,又可以滤除部分噪声。

常用的去噪方法是小波阈值去噪法:
在这里插入图片描述

f ′(t)表示滤波后的函数,符号表示符号函数。在(7)中,median返回中位数。

B.LSTM网络

控制单元状态信息增加或减少的结构称为门。在LSTM块中有三个这样的门,即遗忘门,输入门和输出门。通过这些门结构,LSTM可以记忆、更新、遗忘一些信息。
在这里插入图片描述

以遗忘门举例说明:
遗忘门通过将先前状态ht-1的输出和当前状态输入信息xt输入到sigmoid函数中,生成0和1之间的值,并将其与单元状态相乘,结果0表示遗忘,1表示完全记住。
在这里插入图片描述

C. CEEMDAN-LSTM模型

现实中,股票市场金融时间序列受短期噪声影响较大,因此以损失少量信息为代价,在进行预测前对序列进行去噪处理,有助于提高预测的准确性和可靠性。

本文提出的模型流程图如图2所示:
在这里插入图片描述

  1. 原始信号处理:获取的股市数据包括多个维度,每个维度的数据需要单独提取和处理。
  2. 信号分解-去噪-重构:对分解后的IMF信号不进行去噪处理,而是只对噪声能量高的IMF分量进行去噪处理。
  3. 数据预测:去噪后,重建的信号通过LSTM网络得到最终的预测值。虽然神经网络只有4层,但去噪后的信号具有更明显的特征,通过网络仍然可以得到更好的预测结果。

实验过程

数据集与数据预处理

选取平安银行2010年1月至2021年12月的九项特征数据作为原始数据。每天的数据形成一个九维向量,具有九个特征:最高价、最低价、开盘价、收盘价、换手率、昨日收盘价、成交量、涨跌、成交金额。2010年1月至2018年12月的数据作为训练集,2019年1月至2021年12月的数据作为测试集。

为了克服特征序列之间维数不同的影响,提高模型精度,提高迭代求解的收敛速度,首先对数据进行归一化处理:
在这里插入图片描述

得到网络输出后,需要通过逆归一化得到最终结果。

参数设置

将滑动时间窗口设置为120,并使用最近的10个历史数据来预测下一个值。通过滑动窗口,可以获得长度为120的多个序列。每个序列去噪后,最后10个结果作为LSTM的输入,网络的输出是预测值。

评价指标和参数

该模型的效果一般通过以下四个评价指标来衡量:
在这里插入图片描述

实验结果

下图表示使用相同数据集的三个不同模型的预测误差:
在这里插入图片描述

在三个指标上,ES-LSTM和CEEMDAN-LSTM模型的预测性能相近,且明显优于原始模型LSTM。与ES-LSTM模型相比,CEEMDAN-LSTM模型性能非常接近,并且可以反映更详细的变化,在金融时间序列特别是股票价格序列中更加实用。

深度学习

GRU

GRU是LSTM网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好,因此也是当前非常流形的一种网络。GRU既然是LSTM的变体,因此也是可以解决RNN网络中的长依赖问题。

在LSTM中引入了三个门函数:输入门、遗忘门和输出门来控制输入值、记忆值和输出值。而在GRU模型中只有两个门:分别是更新门和重置门。具体结构如下图所示:
在这里插入图片描述

图中的zt和rt分别表示更新门和重置门。更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门控制前一状态有多少信息被写入到当前的候选集 在这里插入图片描述上,重置门越小,前一状态的信息被写入的越少。

GRU前向传播

根据上面的GRU的模型图,推导出GRU网络的前向传播公式:
在这里插入图片描述

GRU的训练过程

从前向传播过程中的公式可以看出要学习的参数有Wr、Wz、Wh、Wo。其中前三个参数都是拼接的(因为后先的向量也是拼接的),所以在训练的过程中需要将它们分割出来:
在这里插入图片描述

输出层的输入:
在这里插入图片描述

输出层的输出:
在这里插入图片描述

在得到最终的输出后,就可以写出网络传递的损失,单个样本某时刻的损失为:
在这里插入图片描述

则单个样本的在所有时刻的损失为:
在这里插入图片描述

采用后向误差传播算法来学习网络,所以先得求损失函数对各参数的偏导(总共有7个):
在这里插入图片描述

其中各中间参数为:
在这里插入图片描述

在算出了对各参数的偏导之后,就可以更新参数,依次迭代知道损失收敛。

概括来说,LSTM和CRU都是通过各种门函数来将重要特征保留下来,这样就保证了在long-term传播的时候也不会丢失。此外GRU相对于LSTM少了一个门函数,因此在参数的数量上也是要少于LSTM的,所以整体上GRU的训练速度要快于LSTM的。不过对于两个网络的好坏还是得看具体的应用场景。

总结

GRU是LSTM的简化轻量版,训练速度快于LSTM,但并不意味着任何场景都优于LSTM,还要具体问题具体分析。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能分析与调优: Linux 实现 缺页剖析与火焰图

目录 一、实验 1.环境 2.缺页(RSS增长)剖析与火焰图 一、实验 1.环境 (1)主机 表1-1 主机 主机架构组件IP备注prometheus 监测 系统 prometheus、node_exporter 192.168.204.18grafana监测GUIgrafana192.168.204.19agent 监测 主机 node_exporter…

redis夯实之路-集群详解

Redis有单机模式和集群模式。 集群是 Redis 提供的分布式数据库方案,集群通过分片( sharding )来实现数据共享,并提供复制和故障转移。集群模式可以有多个 master 。使用集群模式可以进一步提升 Redis 性能,分布式部署实现高可用性&#xff…

【Java 干货教程】Java实现分页的几种方式详解

一、前言 无论是自我学习中,还是在工作中,固然会遇到与前端搭配实现分页的功能,发现有几种方式,特此记录一下。 二、实现方式 2.1、分页功能直接交给前端实现 这种情况也是有的,(根据业务场景且仅仅只能用于数据量…

6、C语言:输入与输出

输入输出 标准输入输出getchar&putchar函数printf函数sprintf函数格式化输入——scanf函数 文件访问文件读写 错误处理:stderr和exit行输入和行输出常用函数字符串操作函数字符类别测试和转换函数存储管理函数数学函数随机数发生器函数其他 标准输入输出 getch…

x-cmd pkg | grex - 用于生成正则表达的命令行工具

目录 简介首次用户生成的正则表达式与 perl 和 rust 兼容支持 Unicode 符号友好的用户体验进一步阅读 简介 grex 是一个旨在简化创作正则表达式的复杂且繁琐任务的库和命令行程序。这个项目最初是 Devon Govett 编写的 JavaScript 工具 regexgen 的 Rust 移植。但 regexgen 在…

红酒和果酒推荐

一、红酒 首先,说一下大家常见的几十元红酒和贵的红酒的区别。 1.品牌价值。 2.工艺要求。 3.主要原料优质与否。几十元的红酒: 工艺要求没有高档红酒要求高,另外用的葡萄是榨的汁,品牌价值低(目前市场品牌推广的费…

vue组件通信

1. 概述 组件通信, 就是指 组件与组件 之间的数据传递。 注:组件的数据是独立的,无法直接访问其他组件的数据。所以需要了解组件通信 口诀:谁的数据谁处理 2. 组件关系 不同的组件关系包括: 父子关系(包含&#xff…

启英泰伦推出「离线自然说」,离线语音交互随意说,不需记忆词条

离线语音识别是指不需要依赖网络,在本地设备实现语音识别的过程,通常以端侧AI语音芯片作为载体来进行数据的采集、计算和决策。但是语音芯片的存储空间有限,通过传统的语音算法技术,最多也只能存储数百条词条,导致用户…

SOLID 原则

单一功能原则 单一功能原则(Single responsibility principle)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。所有它的(这个类的)服务都应该严密的和该功能平行(功能平行&#x…

杨中科 EFCORE 第四部分 命令详解56-61

Migrations 深入研究Migrations 1、使用迁移脚本,可以对当前连接的数据库执行编号更高的迁移,这个操作叫做“向上迁移” (Up),也可以执行把数据库回退到旧的迁移,这个操作叫“向下迁移(Down) 2、除非有特殊需要&…

在Android原生项目中 创建 Flutter模块

前言 应用场景:在已有的Android原生项目中,引入Flutter模块,摸索了两天,终于给整出来了; 如果是新项目,最好直接创建Flutter项目,然后在Fluter的 android / ios目录中,写原生代码&…

贝锐蒲公英云智慧组网解读:实现工业设备远程调试、异地PLC互联

这个时候,使用异地组网是非常有效的解决方案。在12月28日贝锐官方的直播中,请到了贝锐蒲公英的技术研发经理,为大家分享了贝锐蒲公英云智慧组网解决方案,以及蒲公英二层组网相关的技术和应用。 搜索“贝锐”官方视频号&#xff0c…

好物周刊#36:程序员简历

村雨遥的好物周刊,记录每周看到的有价值的信息,主要针对计算机领域,每周五发布。 一、项目 1. SmartDNS 一个运行在本地的 DNS 服务器,它接受来自本地客户端的 DNS 查询请求,然后从多个上游 DNS 服务器获取 DNS 查询…

【BetterBench】2024年都有哪些数学建模竞赛和大数据竞赛?

2024年每个月有哪些竞赛? 2024年32个数学建模和数据挖掘竞赛重磅来袭!!! 2024年数学建模和数学挖掘竞赛时间目录汇总 一月 (1)2024年第二届“华数杯”国际大学生数学建模竞赛 报名时间:即日起…

苍穹外卖学习----出错记录

1.微信开发者工具遇到的问题: 1.1appid消失报错: {errMsg: login:fail 系统错误,错误码:41002,appid missing [20240112 16:44:02][undefined]} 1.2解决方式: appid可在微信开发者官网 登录账号后在开发栏 找到 复制后按以下步骤粘贴即…

【MySQL】子查询

文章目录 子查询一、子查询的基本使用子查询的分类 二、单行子查询2.1 单行比较操作符2.2 HAVING 中的子查询2.3 CASE中的子查询2.4 子查询中的空值问题2.5 非法使用子查询 三、多行子查询3.1 多行比较操作符3.2 ANY与ALL的区别 四、相关子查询4.1 相关子查询执行流程4.1.1 代码…

【大数据进阶第三阶段之Datax学习笔记】使用阿里云开源离线同步工具DataX 实现数据同步

【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax概述 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax快速入门 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图 【大数据进阶第三阶段之Datax学习笔记】使用…

Django数据库选移的preserve_default=False是什么意思?

有下面的迁移命令: migrations.AddField(model_namemovie,namemov_group,fieldmodels.CharField(defaultdjango.utils.timezone.now, max_length30),preserve_defaultFalse,),迁移命令中的preserve_defaultFalse是什么意思呢? 答:如果模型定…

数学建模.皮尔逊相关系数假设检验

一、步骤 查表找临界值 二、更好的方法 三、使用条件 作图可以使用spss 这个图对不对还不好说,因为还没进行正态分布的验证 四、正态分布验证 (1)JB检验 所以之前的数据的那个表是错的,因为不满足正态分布 (2&#xff…