机器学习的时间序列排序

机器算法验证 时间序列 机器学习 交叉验证
2022-02-28 22:43:59

在阅读了 RJ Hyndman 关于交叉验证和时间序列的“研究提示”之一之后,我回到了我的一个老问题,我将在这里尝试制定。这个想法是,在分类或回归问题中,数据的顺序并不重要,因此可以使用k折交叉验证。另一方面,在时间序列中,数据的排序显然非常重要。

然而,当使用机器学习模型来预测时间序列时,一个常见的策略是重塑序列{y1,...,yT}进入一组“输入-输出向量”,在一段时间内t, 有形式(ytn+1,...,yt1,yt;yt+1).

现在,一旦完成了这种重塑,我们是否可以认为“输入-输出向量”的结果集不需要排序?例如,如果我们使用具有 n 个输入的前馈神经网络来“学习”这些数据,那么无论我们向模型显示向量的顺序如何,我们都会得到相同的结果。因此,我们能否以标准方式使用 k 折交叉验证,而无需每次都重新拟合模型?

2个回答

有趣的问题!

您描述的方法肯定被人们使用标准 ML 方法广泛使用,这些方法需要属性的固定长度特征向量来分析时间序列数据。

在您链接到的帖子中,Hyndman 指出重塑的数据向量(样本)之间存在相关性。这可能是有问题的,因为 k-CV(或其他将数据随机划分为训练和测试集的评估方法)假设所有样本都是独立的。但是,我认为这个问题与标准 ML 方法的情况无关,标准 ML 方法分别处理属性。

为了解释,让我通过假设简化您的符号n=3,所以前几个数据向量(按字母顺序标记)将是:

A:(y1,y2,y3;y4)B:(y2,y3,y4;y5)C:(y3,y4,y5;y6)

显然,A 和 B 有诸如y2共同点。但是,对于 A,这是其第二个属性的值,而对于 B,这是其第一个属性的值。

这个问题的答案是,只要您的模型顺序正确指定,这将正常工作,因为您的模型中的错误将是独立的。

这篇论文表明,如果一个模型交叉验证很差,就会低估它实际上有多差。在所有其他情况下,交叉验证会做得很好,特别是比通常在时间序列上下文中使用的样本外评估更好。