时间序列数据的数据增强涉及创建现有时间序列数据集的修改版本,以提高模型性能,尤其是在训练数据有限的情况下。与图像或文本数据不同,时间序列数据具有必须保留的时间结构,因此方法着重于在改变数据时保持其顺序完整性。常用技术包括添加噪声、缩放、时间扭曲、窗口切片以及通过特定领域转换生成合成序列。目标是让模型接触它们在现实世界中可能遇到的变体,同时不破坏底层模式。
一个实际例子是向传感器读数添加高斯噪声。如果您有用于活动识别的加速度计数据,向信号引入小的随机波动可以模拟现实世界中的传感器误差。另一种方法是缩放,即通过随机因子(例如 0.9 到 1.1)乘以时间序列的幅度,以模仿信号强度的变化。对于金融时间序列,您可以通过稍微拉伸或压缩股票价格数据的片段来应用时间扭曲,以模拟市场波动性的变化。窗口切片也很有用:从较长序列中提取较短的子序列并将其用作新样本,这对于像心电图 (ECG) 分类这样的应用效果很好,其中可以将较短的心跳视为独立示例。
开发者必须平衡增强与保留时间依赖性。例如,像自然语言处理 (NLP) 中那样打乱时间步的顺序会破坏顺序模式,因此应避免排列等方法。相反,领域知识通常指导选择。在音频时间序列中,音高或速度修改是有效的,因为它们与自然变化一致。像 tsaug
这样的 Python 库或使用 NumPy 和 Pandas 的自定义实现可以简化这些技术的应用。通过视觉检查或统计检查(例如,确保均值和方差保持合理)来测试增强数据有助于避免引入不切实际的伪影。通过仔细选择和组合方法,开发者可以创建更鲁棒的模型,这些模型能更好地泛化到未见过的时间序列数据。