时间序列预测的数据增强策略

机器算法验证 时间序列 数据增强
2022-01-21 10:58:36

我正在考虑两种策略来对时间序列预测进行“数据增强”。

首先,一点背景。预测器P预测时间序列的下一步{Ai}是一个通常取决于两件事的函数,时间序列过去的状态,以及预测器的过去状态:

P({Ait1},PSt1)

如果我们想调整/训练我们的系统以获得良好的P,那么我们需要足够的数据。有时可用的数据是不够的,所以我们考虑做数据增强。

第一种方法

假设我们有时间序列{Ai}, 和1in. 并假设我们有ϵ满足以下条件:0<ϵ<|Ai+1Ai|i{1,,n}.

我们可以构建一个新的时间序列{Bi=Ai+ri}, 在哪里ri是分布的实现N(0,ϵ2).

然后,而不是仅在{Ai}, 我们也这样做了{Bi}. 所以,如果优化过程需要m步骤,我们必须“初始化”预测器2m次,我们将大约计算2m(n1)预测器内部状态。

第二种方法

我们计算{Bi}和以前一样,但我们不使用更新预测器的内部状态{Bi}, 但{Ai}. 我们只在计算损失函数时将这两个系列一起使用,所以我们将大约计算m(n1)预测器内部状态。

当然,这里的计算工作少一些(虽然算法有点丑),但暂时无所谓。

疑问

问题是:从统计的角度来看,哪个是“最佳”选项?为什么?

我的直觉告诉我,第一个更好,因为它有助于“规范”与内部状态相关的权重,而第二个只有助于规范与观察到的时间序列过去相关的权重。


额外的:

  • 还有其他想法可以为时间序列预测进行数据增强吗?
  • 如何对训练集中的合成数据进行加权?
3个回答

还有其他想法可以为时间序列预测进行数据增强吗?

我目前正在考虑同样的问题。我发现了Le Guennec 等人的论文“使用卷积神经网络进行时间序列分类的数据增强” 。然而,这不包括预测。那里提到的增强方法仍然看起来很有希望。作者交流了两种方法:

窗口切片 (WS)

受计算机视觉社区启发的第一种方法 [8,10] 包括从时间序列中提取切片并在切片级别执行分类。该方法已在 [6] 中用于时间序列。在训练时,从类 y 的时间序列中提取的每个切片都被分配相同的类,并使用这些切片来学习分类器。切片的大小是该方法的一个参数。在测试时,使用学习的分类器对测试时间序列中的每个切片进行分类,并执行多数投票来决定预测的标签。该方法在下文中称为窗口切片(WS)。

窗口翘曲 (WW)

我们使用的最后一种数据增强技术更针对时间序列。它包括通过加速或减速来扭曲时间序列的随机选择切片,如图 2 所示。原始切片的大小是该方法的一个参数。图 2 显示了来自“ECG200”数据集的时间序列和相应的转换数据。请注意,此方法会生成不同长度的输入时间序列。为了解决这个问题,我们对转换后的时间序列执行窗口切片,以使所有时间序列都具有相同的长度。在本文中,我们只考虑等于0.5或的翘曲比率2,但也可以使用其他比率,甚至可以通过对训练集的交叉验证来微调最佳比率。在下文中,这种方法将被称为窗口扭曲(WW)。

图 2 来自论文

作者保持系列的 90% 不变(即 WS 设置为 90% 的切片,而对于 WW,系列的 10% 被扭曲)。据报道,这些方法可以减少几种类型(时间)序列数据的分类错误,但图像轮廓的一维表示除外。作者从这里获取他们的数据:http: //timeseriesclassification.com

如何对训练集中的合成数据进行加权?

在图像增强中,由于增强不会改变图像的类别,因此通常将其加权为任何真实数据。时间序列预测(甚至时间序列分类)可能会有所不同:

  1. 时间序列不容易被人类感知为一个连续的对象,所以取决于你对它的篡改程度,它仍然是同一类吗?如果您只是稍微切片和扭曲,并且类在视觉上是不同的,那么这可能不会对分类任务造成问题
  2. 对于预测,我认为

    2.1 WS 仍然是一个不错的方法。无论您查看该系列的哪个 90% 部分,您仍然会期望基于相同规则的预测 => 全权重。

    2.2 WW:越接近系列的结尾,我就越谨慎。直观地说,假设曲线的最新特征是最相关的,我会想出一个在 0(末端翘曲)和 1(开始翘曲)之间滑动的权重因子。

还有其他想法可以为时间序列预测进行数据增强吗?

另一个采用不同方法的答案,基于DeVries 和 Taylor 的“特征空间中的数据集增强” 。

在这项工作中,我们证明了在特征空间中的样本之间外推可用于扩充数据集并提高监督学习算法的性能。我们方法的主要好处是它是领域独立的,不需要专业知识,因此可以应用于许多不同类型的问题。

对我来说听起来很有希望。原则上,您可以使用任何自动编码器在特征空间中创建表示。这些特征可以被内插或外推。

下图显示了两个特征空间向量的插值示例CjCk(请注意,从两个向量推断出更多的积极结果,请参阅论文了解详细信息)。得到的增强向量C然后被解码回输入空间并输入网络进行训练。

这篇论文再次只涉及序列分类。但同样,IMO 回归分析的原则是相同的。您从可能与真实数据相同的分布中获得新数据,这就是您想要的。

AE增强的架构

如果我们进一步阐述神经网络生成数据的这一原理,我们将最终得到生成对抗网络(GAN)它们可以以类似的方式用于生成增强数据,这可能是最复杂的最先进的方法。

我最近实施了另一种方法,灵感来自于 Bergmeir、Hyndman 和 Benitez 的这篇论文。

这个想法是采用时间序列并首先应用诸如 Box Cox 变换或 Yeo-johnson(解决 Box Cox 的一些问题)之类的变换来稳定序列的方差,然后对变换后的序列应用 STL 分解对于季节性序列或黄土分解以获得序列的残差。获取这些残差并使用移动块引导程序引导它们以生成B附加系列。这些B其他系列然后将起始系列的初始趋势和季节性添加回自举残差,然后最后反转第一步中应用的功率变换。

通过这种方式,可以根据需要生成尽可能多的附加时间序列,这些时间序列可以很好地代表初始时间序列。以下是在一些真实数据上生成额外相似时间序列的应用示例:

增强系列

这里使用 Yeo-johnson 变换而不是原始论文中建议的 Box Cox 来显示增强。