时序必读论文14|VLDB24 TFB:全面且公平的时间序列预测方法框架

图片

论文标题:TFB: Towards Comprehensive and Fair Benchmarking of Time Series Forecasting Methods

论文链接:https://arxiv.org/pdf/2403.20150.pdf

代码链接:https://github.com/decisionintelligence/TFB

前言

五一过后读的第一篇文章,质量非常高。与以往对时序模型修补、改进类的算法论文不同,TFB这篇文章关注的是整个时间序列领域更高的层面的问题。其实从我开始写文章以来,就陆续收到私信,询问:为什么论文中SOTA的模型,放到我的数据集不work /效果不好/不如线性模型?包括我在kaggle社区也发现,几乎所有的业界时序预测竞赛,大家用XGboost类算法,而非深度学习。

这说明:不同应用领域的数据集与不同时序模型之间其实存在一个内在的Gap,本篇文章就通过对当前时序研究“不规范”、不全面的地方进行系统分析,从数据集、对比方法、评估流程三个方面,构造了一个可插拔的自动化基准。为时序研究人员提供了更全面可用的基准工具集。

当前时序研究框架存在的不足

现有时序研究在整个评估框架上存在的三方面问题:

问题1:数据领域覆盖不足。

不同领域的时间序列可能会表现出多样化的特征。图1a是环境领域的时序数据,呈现出明显的季节性模式。图1b展示了一个经济领域的时间序列,具有明显的增长趋势。图1c是电力领域时序,可以看到在某个时间点数据发生了显著变化,这可能是一个突发事件等。以上这些简单模式只是冰山一角,不同领域的时序可能具有更复杂的模式。因此,仅使用有限的领域会导致时间序列特征的覆盖范围有限,无法提供一个完整的视角。

图片

图2总结了现有预测基准测试中使用的多变量数据领域。可以观察到TSlib、LTSF-Linear、BasicTS和BasicTS+只包含了大约10个数据集,覆盖的领域少于或等于5个。而且这些数据集主要集中在交通和电力这两个领域。由于TSlib中的多变量时间序列数据集是最常用的,作者调查了TSlib和TFB中数据集特征值的变化——如下右图。可以观察到TFB数据集在六个特征上的分布比TSlib更加多样化。由此可以认为:扩大领域覆盖范围是有益的,这有助于对方法性能进行更广泛的评估

图片

问题2:对传统方法的刻板偏见。

作者在不同领域(股票市场、能源、健康)的三个数据集上对VAR、PatchTST、线性回归(LR)、NLinear、FEDformer和Crossformer等方法进行了实验,结果如下表。令人惊讶的是,VAR在股票数据上超越了所有最近提出的最新技术(SOTA)方法,在ILI上也优于FEDformer和Crossformer。此外,LR在Wind上的表现也优于最近提出的最新技术方法。

然而,原始论文的实验却并没有将VAR和LR纳入基线比较,而是假设传统方法无法获得有竞争力的性能!通过比较广泛的方法范围,消除对传统方法的刻板偏见是有益的。

图片

问题3:缺乏一致且灵活的流程。

不同方法的性能会随着实验设置的变化而变化,例如,在训练/验证/测试数据之间的划分、归一化方法的选择以及超参数设置的选择。这一部分就是我的上一篇文章想讲的“drop last”的影响,作者详细讨论了当前时序研究"Drop last"带来的对比误差,结果如下图,具体可参考原论文。此外,大多数基准测试中的流程缺乏灵活性,不支持统计学习、机器学习和深度学习方法的同时评估。而确保一个一致且灵活的流程至关重要,这样就可以在相同的设置下进行评估,从而提高发现的公平性。

图片

本文工作

围绕以上问题,作者提出时间序列预测基准(Time series Forecasting Benchmark,TFB),以更全面地跨应用领域和方法对时间序列预测(TSF)方法进行实证评估和比较,并提高评估的公平性。

解决问题1:

根据数据集特征分类方法进行全面的数据集收集,提供多样化的特征,涵盖来自多个领域和复杂设置的时间序列。包含25个多变量和8,068个单变量数据集,其数据格式都是一致的,涵盖了广泛的领域和特性。这一部分作者对单变量、多变量数据集进行细致分析,具体可看原文。

特别是还对数据集的全面性进行讨论。考虑数据的五个特征值:趋势性、季节性、平稳性、漂移性和转移。采用PCA将维度从五维降低到二维,并可视化了八个单变量时间序列数据集。可以看到,TFB和M4覆盖的单元格最多,而其他所有基准相对于TFB都较小。这说明数据集在特征分布多样性方面的覆盖了更广泛的领域。

图片

解决问题2:

如下图,TFB框架扩展了评估策略和指标:包括统计学习、机器学习和深度学习方法,引入多种评估策略和指标,使其更全面地评估模型。

图片

解决问题3:

设计灵活且可扩展的评估流程框架,通过统一的流程进行评估,采用一致且标准化的评估策略。包括:固定预测和滚动预测。以及包括MAE、MSE等在内的八种误差度量指标。

图片

最后,如下图:作者引入了一个统一的评估流程,分为数据层、方法层、评估层和报告层。用户只需在方法层部署他们的方法架构,并选择或配置配置文件,然后TFB就可以自动运行图中的流程。

图片

实验和总结

作者对TFB中包含的所有数据集,包括25个多变量数据集和8,068个单变量时间序列,以及前文提到的所有baseline方法,进行细致的实验分析,限于篇幅不在展示。

我比较关心的一些结论:

  • 线性模型在数据集呈增长趋势或具有显著漂移时表现出色。这可以归因于线性模型的线性建模能力,使其能够很好地捕捉线性趋势和漂移。

  • Transformer方法在展现明显季节性、平稳性和非线性模式,以及更明显模式或内在相似性的数据集上优于线性方法。这种优越性可能源于Transformer方法增强的非线性建模能力。

Anaway,没有适合所有数据集的模型,要根据具体情况选择。本文给出的数据集,以及构建的一整套训练框架对于模型效果评估验证是很好的。


大家一定要关注我的公众号【科学最top】,第一时间follow时序高水平论文解读!!!

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

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

相关文章

矩阵系统源码搭建的具体步骤,支持oem,源码搭建

一、前期准备 明确需求 确定矩阵系统的具体用途,例如是用于社交媒体管理、电商营销还是其他领域。梳理所需的功能模块,如多账号管理、内容发布、数据分析等。 技术选型 选择适合的编程语言,如 Python、Java、Node.js 等。确定数据库类型&…

计算机毕业设计 基于Python的广东旅游数据分析系统的设计与实现 Python+Django+Vue Python爬虫 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Qt 中的 QListWidget、QTreeWidget 和 QTableWidget:简化的数据展示控件

Qt 中的 QListWidget、QTreeWidget 和 QTableWidget:简化的数据展示控件 在 Qt 的用户界面开发中,展示和管理数据是常见的需求。Qt 提供了丰富的控件供开发者选择,其中 QListWidget、QTreeWidget 和 QTableWidget 是三个高层封装控件&#x…

vue实现文件解压缩

1. 使用CompressionStream API实现压缩 这里开启了多线程解压缩 <template><div class"page"><input type"file" placeholder"选择文件" id"file" /><button click"compress(compress)">压缩<…

uplink 级联口

Uplink 播报编辑讨论上传视频 交换机上的一种端口 展开2个同名词条 本词条缺少概述图&#xff0c;补充相关内容使词条更完整&#xff0c;还能快速升级&#xff0c;赶紧来编辑吧&#xff01; 在点到多点系统中&#xff0c;由分散点到集中点的传输链路。例如&#xff1a;在移动…

yolov8训练数据集——labelme的json文件转txt文件

yolov8的环境搭建&#xff0c;参考&#xff1a;Home - Ultralytics YOLO Docs 1.把标注好的json文件和jpg放同一个目录下。 2.运行转换脚本文件labelme2yolo.py文件&#xff1a; # -*- coding: utf-8 -*-import os import numpy as np import json from glob import glob im…

【C#】CacheManager:高效的 .NET 缓存管理库

在现代应用开发中&#xff0c;缓存是提升性能和降低数据库负载的重要技术手段。无论是 Web 应用、桌面应用还是移动应用&#xff0c;缓存都能够帮助减少重复的数据查询和处理&#xff0c;从而提高系统的响应速度。然而&#xff0c;管理缓存并不简单&#xff0c;尤其是当你需要处…

Linux-基础实操篇-组管理和权限管理(上)

Linux 组基本介绍 在 linux 中的每个用户必须属于一个组&#xff0c;不能独立于组外。在 linux 中每个文件 有所有者、所在组、其它组的概念。 用户和组的基本概念&#xff1a; 用户名&#xff1a;用来识别用户的名称&#xff0c;可以是字母、数字组成的字符串&#xff0…

基于yolo11的工地钢筋检测计数训练、应用系统

基于yolo11的工地钢筋检测计数应用系统 基于yolo11的工地钢筋检测计数训练系统 yolov8/9/10/11模型在工地钢筋检测计数中的应用【代码数据集python环境训练/应用GUI系统】 背景意义 多数钢厂和工地普遍依靠人工来统计成捆钢筋的根数&#xff0c;这种方式不仅机械枯燥、劳动强度…

深入掌握 Protobuf 与 RPC 的高效结合:实现C++工程中的高效通信

目录 一、Protobuf与RPC框架的通信流程概述二、Protobuf与RPC在C中的实际应用2.1 定义 .proto 文件2.2 编译 .proto 文件生成C代码2.3 实现服务器端逻辑2.4 实现客户端逻辑2.5 使用CMake构建工程2.6 编译与运行2.7 关键组件解析2.8 序列化与反序列化的实现 三、关键实现与解析四…

帝都程序猿十二时辰

前言 2019年度国产剧《长安十二时辰》火了&#xff0c;其口碑榜首、节奏紧凑、贴合原著、电影质感&#xff0c;都是这部剧的亮点。而最令人震撼的还是剧中对大唐盛世的还原&#xff0c;长安街坊的市容市貌、长安百姓的生活日常、长安风情的美轮美奂……而关于十二时辰的话题也接…

Unity 2D RPG Kit 学习笔记

学习资料&#xff1a; B站教学视频&#xff1a;https://www.bilibili.com/video/BV1dC4y1o7A5?p1&vd_source707ec8983cc32e6e065d5496a7f79ee6 2D RPG Kit Documentation.pdf文档 1、2D RPG Kit Documentation文档 1.1、Scenes/TitleScreen 开始菜单工程 1.2、https://it…

C++语言学习(3): type 的概念

type 的概念 C中的变量拥有类型&#xff0c; 这是显然的。 实际上&#xff0c;每个 object&#xff0c; 每个 reference&#xff0c; 每个 function&#xff0c; 每个 expression &#xff0c; 都有对应的 type &#xff08;类型&#xff09;&#xff1a; Each object, refer…

【SQL】有至少五名直接下属的经理

目录 语法 需求 示例 分析 代码 语法 SELECT columns FROM table1 JOIN table2 ON table1.common_column table2.common_column; 在数据库管理和编程中&#xff0c;JOIN 是一种用于结合来自两个或多个表的数据的 SQL 操作。通过使用 JOIN&#xff0c;你可以根据两个表中的…

vue3 + ts 二次封装 el-menu

实现效果&#xff1a; 1. types / menu.ts export interface MenuItem {index: string,label: string,icon?: string,disabled?: boolean,children?: MenuItem[], }2. components / CustomMenu / index.vue <template><el-menu :default-active"defaultActi…

10.2 Linux_并发_进程相关函数

创建子进程 函数声明如下&#xff1a; pid_t fork(void); 返回值&#xff1a;失败返回-1&#xff0c;成功返回两次&#xff0c;子进程获得0(系统分配)&#xff0c;父进程获得子进程的pid 注意&#xff1a;fork创建子进程&#xff0c;实际上就是将父进程复制一遍作为子进程&…

傅里叶级数在机器人中的应用(动力学参数辨识)

B站首发&#xff01;草履虫都能看懂的【傅里叶变换】讲解&#xff0c;清华大学李永乐老师教你如何理解傅里叶变换&#xff0c;辨清美颜和变声原理&#xff0c;&#xff01;&#xff01;_哔哩哔哩_bilibiliB站首发&#xff01;草履虫都能看懂的【傅里叶变换】讲解&#xff0c;清…

Mac屏蔽系统更新,取出红点标记如果解锁hosts文件

引言&#xff1a;关闭系统更新&#xff0c;首先应该在系统偏好设置---软件更新---去掉自动更新的选项。即使如此&#xff0c;系统仍然进行macOS系统和自带safari等软件的检测更新&#xff0c;并图标右上角红点点标记提醒我们更新&#xff0c;那我们如果彻底屏蔽更新呢&#xff…

监控告警功能详细介绍及操作演示:运维团队的智能保障

在当今这个信息化高速发展的时代&#xff0c;运维团队面临着前所未有的挑战。为了确保系统的稳定性和高效运维&#xff0c;监控告警功能成为了运维团队不可或缺的得力助手。本文将详细介绍我们的监控告警功能&#xff0c;并结合实际操作页面进行演示&#xff0c;帮助运维团队更…