(时序论文阅读)TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting

news2024/11/16 20:06:51

来源论文iclr2024

论文地址:https://arxiv.org/abs/2405.14616
源码地址: https://github.com/kwuking/TimeMixer

背景

数据是有连续性,周期性,趋势性的。我们这篇文章主要围绕的是用MLP结构来预测数据的周期性具体为:
短期变化(细粒度):例如局部波动、尖峰等,通常与日常行为或随机事件相关。
长期变化(粗粒度):例如趋势、周期性或季节性模式,这些通常反映更广义的规律。
现有方法(如 RNN 和 Transformer)通常只能从单一时间尺度建模,忽略了不同时间尺度之间的关联性。
确实,在金融领域,如a股是有明显的周期性的,在股价预测方面确实可以借鉴。

模型创新点和现有方法的局限性

创新点:

1.多尺度混合架构:TimeMixer 提出了一种新颖的多尺度混合架构,通过 过去可分解混合(Past-Decomposable-Mixing, PDM) 和 未来多预测器混合(Future-Multipredictor-Mixing, FMM) 两部分,分别用于过去信息提取和未来预测。

PDM:通过分解时间序列的季节性和趋势部分,分别从细到粗和粗到细的方向进行混合,整合微观和宏观信息。
FMM:集成多个预测器,利用多尺度时间序列的互补预测能力,提升预测性能。
2.全MLP结构:TimeMixer完全基于MLP,简化了模型架构,在保证性能的同时显著提高了运行效率。

3.一致性与广泛适用性:TimeMixer 在长短期时间序列预测任务上均达到了最新的性能,并在多个基准数据集上表现优异,包括复杂且低预测性的场景。

现有方法的局限性:

1.依赖固定架构:现有方法(如基于Transformer和CNN的模型)通常受限于其基础架构,难以同时捕获时间序列的微观细节和宏观趋势。
2.缺乏多尺度整合:虽然部分模型(如Pyraformer, SCINet)尝试了多尺度设计,但它们未能在未来预测阶段充分利用多尺度信息的互补性。
3.效率问题:Transformer类模型计算复杂度高,对硬件要求较高,不适用于实时应用。
4.单一分解方式:传统方法(如Autoformer, FEDformer)仅局限于简单的时间序列分解,无法灵活适应复杂的时间序列变化

模型架构

Past-Decomposable-Mixing (PDM)模块

PDM 模块负责从历史数据中提取多尺度的时间特征,通过分解和多层混合来捕捉趋势和季节性
PDM 的具体步骤:
时间序列分解:

使用分解模块(如基于 Autoformer 的策略)将时间序列分为:
1.趋势性成分(Trend):表示长期变化。
2.季节性成分(Seasonal):表示短期波动。
生成多尺度的趋势和季节性子序列。(也就是将其自底向上隔点取值)

那是怎么进行多尺度划分的呢?
看这里 我们取P为96,l取0,1,2,3.
在这里插入图片描述

原文采用的是普通的平均池化来进行多尺度划分,将P和l进行带入后获得的多尺度提取序列是,第一次比如是隔2个点进行取值获得第一次的粗序列,第二次进行四个点取值的粗序列,第四次是隔八个点取的粗序列,反正是根据2的指数进行递增的。如下图。
在这里插入图片描述

下面这是特征提取层
在这里插入图片描述
那么这个PDM模块得到的是哪个mixing呢?
答案是总的
那我们如何得到这些趋势向和季节向?
原文就是通过平均池化,得到趋势向
然后用总的减去趋势向得到季节向

那么为什么用平均池化可以得到趋势向?
举个例子, 2,4,6,8,假设池化步幅为2
平均池化后得到3,3,7,7那么这就是趋势向得到的结果,这时候我们可以看到这是有上升趋势的,
那么用原来的序列减去平均池化后的序列结果呢?得到-1,1,-1,1 这样一看就很有周期性。

在这里插入图片描述

在这里插入图片描述

先看季节向的公式:
季节向是自底向上的,为什么自底向上,是因为季节性的话(也就是周期性),提取向上后时间间隔越来越大,那么得到的上层的周期性就不明显,就需要用下层的信息去补充上层信息,使其达到季节性效果。
在这里插入图片描述
趋势层是自上到下的,自顶向下的处理方式可以在细粒度特征中引入稳定的趋势信息,减少噪声的影响,使模型在噪声较大的数据中表现更鲁棒。自顶向下的处理方式可以在细粒度特征中引入稳定的趋势信息,减少噪声的影响,使模型在噪声较大的数据中表现更鲁棒。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

FMM模块

就是将多尺度提取后mixing模块的结果进行维度转换,把它统一到一个维度去,最后在进行加权得到最后的预测结果。
在这里插入图片描述

总体模型图如下。
在这里插入图片描述

实验部分

最后实验部分也是比sota模型高。
TimeMixer在所有基准测试中都实现了一致的最先进性能,涵盖了具有不同频率、
变量数和实际场景的大量系列。特别是,TimeMixer的性能明显优于PatchTST,天气MSE降低
了9.4%,Solar-Energy MSE降低了24.7%。值得注意的是,即使在Solar-Energy和ETT等可预测
性较低的数据集上,TimeMixer也表现出了良好的性能,进一步证明了TimeMixer的通用性和有
效性。
在这里插入图片描述
为了验证模型的泛化能力,在一些比较随机性差的数据集是否有效果,作者定义了一个指标
Forecastability,Forecastability可预测指数(2013ForeCA算法)
谱熵–反映数据在频域中的不确定性,度量数据集混乱程度的指标,熵值越高,时间序列趋势越复杂,越难以预测
(1-熵值)越大,可预测Forecastability:性越强

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件 Excel导出系列目录:★★★★尤其注意:引入依赖创建导出模板类逻辑处理controllerservice 导出效果总结 Excel导出系列目录: 【Springboot 使用EasyExcel导出Excel文件】 【Springb…

【论文分享】基于街景图像识别和深度学习的针对不同移动能力老年人的街道步行可达性研究——以南京成贤街社区为例

全球老龄化趋势加剧, 许多城市中老年人数量不断增加,而现有街道和社区基础设施往往未能满足其步行安全和便利需求。本次我们给大家带来一篇SCI论文的全文翻译,该论文通过探讨不同步行能力的老年人对城市步行环境的需求,提供了关于如何改善城市…

LM2 : A Simple Society of Language Models Solves Complex Reasoning

文章目录 题目摘要简介相关工作方法论实验结果结论局限性 题目 LM2:简单的语言模型社会解决复杂推理问题 论文地址:https://aclanthology.org/2024.emnlp-main.920/ 项目地址: https://github.com/LCS2-IIITD/Language_Model_Multiplex 摘要…

【因果分析方法】MATLAB计算Liang-Kleeman信息流

【因果分析方法】MATLAB计算Liang-Kleeman信息流 1 Liang-Kleeman信息流2 MATLAB代码2.1 函数代码2.2 案例参考Liang-Kleeman 信息流(Liang-Kleeman Information Flow)是由 Liang 和 Kleeman 提出的基于信息论的因果分析方法。该方法用于量化变量之间的因果关系,通过计算信息…

[含文档+PPT+源码等]精品基于springboot实现的原生Andriod手机使用管理软件

软件开发环境及开发工具: 数据库管理工具:phpstudy/Navicat或者phpstudy/sqlyog 开发工具:Android Studio 后台管理系统涉及技术: 后台使用框架:Springboot 前端使用技术:Vue,HTML5,CSS3、JavaScript等…

(三十三)队列(queue)

文章目录 1. 队列(queue)1.1 定义1.2 函数1.3 习题1.3.1 例题(周末舞会) 2. 双向队列(deque)2.1 定义2.2 函数2.3 题目2.3.1 例题(打BOSS) 1. 队列(queue) 队…

常用数据类型

1.数值类型 分为整型和浮点型 double(3,1);长度是3,小数点后是1,比如99.5,10.0,20.8 这里的float和double与java中的类似,都是IEEE 754标准的浮点数,精度会丢失,存在一定误差&#…

Vue3 -- 集成sass【项目集成5】

集成sass&#xff1a; 看过博主的 配置styleLint工具应该已经安装过 sass sass-loader 了&#xff0c;所以我们只需要加上我们的 lang"scss"即可。 <style scoped lang"scss"></style>给项目添加全局样式文件&#xff1a; 在src文件夹下创建…

【云原生系列--Longhorn的部署】

Longhorn部署手册 1.部署longhorn longhorn架构图&#xff1a; 1.1部署环境要求 kubernetes版本要大于v1.21 每个节点都必须装open-iscsi &#xff0c;Longhorn依赖于 iscsiadm主机为 Kubernetes 提供持久卷。 apt-get install -y open-iscsiRWX 支持要求每个节点都安装 N…

Springboot集成ElasticSearch实现minio文件内容全文检索

一、docker安装Elasticsearch &#xff08;1&#xff09;springboot和Elasticsearch的版本对应关系如下&#xff0c;请看版本对应&#xff1a; 注意安装对应版本&#xff0c;否则可能会出现一些未知的错误。 &#xff08;2&#xff09;拉取镜像 docker pull elasticsearch:7…

Diff 算法的误判

起源&#xff1a; 设想一下&#xff0c;假如你桌面上的文件都没有文件名&#xff0c;取而代之的是&#xff0c;你使用通过文件的位置顺序即index来区分它们———第一个文件&#xff0c;第二个文件&#xff0c;以此类推。也许这种方式可行&#xff0c;可是一旦你删除了其中的一…

D69【 python 接口自动化学习】- python 基础之数据库

day69 Python 执行 SQL 语句 学习日期&#xff1a;20241115 学习目标&#xff1a; MySQL 数据库&#xfe63;- Python连接redis 学习笔记&#xff1a; redis数据库的用途 使用Python访问redis数据库 使用Python对redis数据库进行读写操作 总结 1. redis是一款高性能的键…

飞书文档只读限制复制

飞书文档只读限制复制 场景描述解决方式插件安装测试 场景描述 当使用飞书时&#xff0c;可能会存在无对方文档编辑/管理权限&#xff0c;对方只给自己开放只读权限的时候&#xff0c;此时如果文档较重要&#xff0c;需要本地保存一份&#xff0c;但是又无法复制文档或直接屏蔽…

[每周一更]-(第123期):模拟面试|消息队列面试思路解析

文章目录 22|消息队列:消息队列可以用来解决什么问题?1. 你用过消息队列吗?主要用来解决什么问题?异步、削峰和解耦你能各举一个例子吗?2. 你用的是哪个消息队列?为什么使用它而不用别的消息队列?3. 为什么你一定要用消息队列?不用行不行?不用有什么缺点?4. 在对接多…

npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系

文章目录 作用示例常用选项示例命令注意事项 1、实战举例**解决方法**1. **锁定唯一的 types/node 版本**2. **清理依赖并重新安装**3. **设置 tsconfig.json 的 types**4. **验证 Promise 类型支持** **总结** npm list types/node 命令用于列出当前项目中 types/node 包及其…

使用 DBSCAN(基于密度的聚类算法) 对二维数据进行聚类分析

代码功能 生成数据&#xff1a; 使用 make_moons 方法生成一个非线性分布的二维数据集&#xff0c;模拟月亮形状的两个半环形分布&#xff0c;同时添加一定的噪声。 数据标准化&#xff1a; 使用 StandardScaler 对数据进行标准化处理&#xff0c;使不同特征的值具有相同的…

【苍穹外卖】学习日志-day1

目录 nginx 反向代理介绍 nginx 的优势 提高访问速度 负载均衡 保证后端服务安全 高并发静态资源 Swagger 生成 API 文档 Swagger 的使用方式 导入knife4j的maven坐标 在配置类中加入knife4j相关配置 设置静态资源映射 通过注解控制生成的接口文档 项目技术点 Token 模式 MD5 加…

炼码LintCode--数据库题库(级别:入门;数量:144道)--刷题笔记_01

目录 炼码LintCode数据库入门级别的笔记未完待续~~~ 炼码LintCode 数据库 入门级别的笔记 笔记如下&#xff0c;把所有涉及到的入门级别的知识点简单总结了一下。 以及一点点举一反三的写法。 增 INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);批量增 INSERT INT…

【C语言】连接陷阱探秘(1):声明与定义

目录 一、声明与定义的混淆 1.1. 声明(Declaration) 1.2. 定义(Definition) 1.3. 避免混淆的方法 1.4. 示例 二、声明与定义不匹配 2.1. 常见的不匹配情况 2.2. 解决方法 三、外部变量与静态变量的命名冲突 3.1. 外部变量命名冲突 3.2. 静态变量命名冲突 四、缺…

pycharm快速更换虚拟环境

目录 1. 选择Conda 虚拟环境2. 创建环境3. 直接选择现有虚拟环境 1. 选择Conda 虚拟环境 2. 创建环境 3. 直接选择现有虚拟环境