[增强] 添加时间性补丁随机排序 (TPS) 扩展,用于预测和分类

作者: jafarbakhshaliyev创建于 2026年4月15日更新于 2026年5月3日

摘要

我想建议在 TSlib 中添加 Temporal Patch Shuffle (TPS),这是一种模型无关的数据增强方法。TPS 并不是一个新模型,而是一种增强技术,可应用于 TSlib 中的任何现有骨架(DLinear、PatchTST、TSMixer、TiDE、LightTS、TimesNet 等),以提高泛化能力。

动机

TSlib 目前在 utils/augmentation.py 中包含了用于分类任务的增强工具(震颤、缩放、旋转、置换、时间扭曲等),但 没有增强支持用于预测任务。预测数据增强是一个活跃的研究领域,最近的几种方法(FreqMask/Mix、WaveMask/Mix、Dominant Shuffle)都显示出明显的优势。TPS 在所有这些方法中表现最好。

TPS 所做的事情

TPS 提取重叠的时间片段,选择性地对低方差片段进行随机排序,并通过平均重叠区域重建序列。它有三个超参数:片段长度、步长和随机排序率。

结果

TPS 已在 所有五个 TSlib 核心家族(TSMixer、DLinear、PatchTST、TiDE、LightTS)上进行了评估,涵盖了九个长期和四个短期预测基准,始终优于 13 个现有增强基准。TPS 也适用于分类(UCR/UEA 基准与 MiniRocket/MultiRocket)。

模型 | MSE 相对于第二佳增强的改进 -- | -- TSMixer | 2.61% DLinear | 7.50% PatchTST | 2.84% TiDE | 2.08% LightTS | 10.51%

选项 A(最小):utils/augmentation.py 中添加 tps() 函数,与现有增强(震颤、缩放等)一起使用,并添加对应的 --tps argparse 标志。这是一个约 40 行的 NumPy 函数,完全符合现有模式。

选项 B(更广泛):添加一个预测增强模块(例如 utils/augmentation_forecast.py),其中包括 TPS,并可能在以后适应其他预测增强。这将与 exp/exp_long_term_forecasting.py 在批量级别上集成,在训练期间应用增强。

我很乐意实现任何一种选项。我会很感谢您对哪种方法符合 TSlib 的路线图,以及您是否会考虑在正式发布之前提交增强贡献(论文正在审阅中)。

内容来源: thuml/Time-Series-Library