本文翻译杰森布朗利博士的博文,如想查看原文请点击链接
时间序列预测可以被定义为监督学习问题。
对时间序列数据进行重新组可以让你访问针对您问题的标准线性和非线性机器学习算法。
在这篇文章中,您将发现如何将你的时间序列问题重新组织为机器学习的监督学习问题。阅读这篇文章后你将会知道:
- 什么是监督式学习,以及它是如何成为所有预测性建模机器学习算法的基础
- 用于构建时间序列数据集的滑动窗口方法以及如何使用它。
- 如何使用滑动窗口进行多元数据集和多步预测
监督机器学习
大多数机器学习使用监督学习。监督学习是指输入变量X和输出变量Y,并使用算法学习输入到输出的映射函数。Y=f(X)
目标是近似真实的底层映射,以便在有新的输入数据是,可以预测该数据的树池变量
监督学习问题可以进一步分为回归和分类问题。
分类:分类问题是输出变量是一个类别,如‘红色,蓝色’,疾病无疾病
回归:回归问题是当输出变量是一个真实值时,比如美元,权重 ,具体的一个数字等
时间序列数据的滑动窗口
时间序列数据可以表达为监督式学习。
给定时间序列数据集的数字序列,我们可以重构数据以使其看起来像监督学习问题。我们可以通过使用以前的时间步骤作为输入变量并使用下一个时间步骤作为输出变量。
让我们以一个例子来说明这个问题。想象一下,我们有一个时间序列如下:
|
1
2
3
4
5
6
|
time, measure
1, 100
2, 110
3, 108
4, 115
5, 120
|
我们可以将这个时间序列数据集重构为一个监督学习问题,方法是使用前一时间步的值来预测下一个时间步的值。以这种方式重新组织时间序列数据集,数据如下所示:
|
1
2
3
4
5
6
7
|
X, y
?, 100
100, 110
110, 108
108, 115
115, 120
120, ?
|
看看上面的转换数据集,并将其与原始时间序列进行比较。这里有一些观察:
- 我们可以看到,前一个时间步是输入(X),下一个时间步是监督学习问题中的输出(y)。
- 我们可以看到观察值之间的顺序被保留下来,并且在使用这个数据集来训练监督模型时必须继续保留。
- 我们可以看到,我们没有以前的值可以用来预测序列中的第一个值。我们将删除该行,因为我们无法使用它。
- 我们还可以看到,我们没有已知的下一个值来预测序列中的最后一个值。我们也可能想在删除这个值的同时训练我们的监督模型。
使用先前的时间步骤来预测下一个时间步骤被称为滑动窗口方法。简而言之,在某些文献中它可能被称为窗口方法。在统计和时间序列分析中,这被称为滞后或滞后方法。
前面的时间步数被称为窗口宽度或滞后大小。
这个滑动窗口是我们如何将任何时间序列数据集变为监督学习问题的基础。从这个简单的例子中,我们可以注意到一些事情:
- 我们可以看到,如何将时间序列转化为回归分类监督学习问题或分类监督学习问题,以实现实时值或标记时间序列值。
- 我们可以看到,一旦以这种方式准备时间序列数据集,只要保留行的顺序,就可以应用任何标准的线性和非线性机器学习算法。
- 我们可以看到如何增加宽度滑动窗口以包含更多先前的时间步骤。
- 我们可以看到滑动窗口方法如何用于具有多个值的时间序列或所谓的多元时间序列。
我们将探索滑动窗口的一些用途,接下来开始使用它来处理每个时间步骤具有多个观察值的时间序列,称为多元时间序列。
具有多元时间序列数据的滑动窗口
在时间序列数据集中给定时间记录的观测数量很重要。
传统上,使用不同的名称:
- 单变量时间序列:这些数据集中每次只观察一个变量,如每小时的温度。上一节中的示例是一个单变量时间序列数据集。
- 多变量时间序列:这些是每次观察两个或更多变量的数据集。
大多数时间序列分析方法,甚至是关于该主题的书籍,都侧重于单变量数据。这是因为它是理解和使用最简单的方法。多变量数据通常更难以处理。这很难模拟,而且很多经典方法往往表现不佳。
多变量时间序列分析同时考虑多个时间序列。......一般来说,它比单变量时间序列分析复杂得多
- 第1页,多元时间序列分析:使用R和财务应用程序。
在时间序列中使用机器学习的最佳位置是经典方法下降的地方。这可能与复杂的单变量时间序列有关,并且考虑到额外的复杂性,更可能具有多变量时间序列。
下面是使多滑动窗口方法具体化为多元时间序列的另一个实例。
假设我们在下面设计了多元时间序列数据集,每个时间步骤都有两个观察值。我们还假设我们只关心预测度量2。
|
1
2
3
4
5
6
|
time, measure1, measure2
1, 0.2, 88
2, 0.5, 89
3, 0.7, 87
4, 0.4, 88
5, 1.0, 90
|
我们可以将此时间序列数据集重新构造为窗口宽度为1的监督学习问题。
这意味着,我们将使用以前的时间步长值措施1和measure2。我们还将提供measure1的下一个时间步值。然后,我们将预测measure2的下一个时间步长值。
这会给我们3个输入特征和一个输出值来预测每个训练模式。
|
1
2
3
4
5
6
7
|
X1, X2, X3, y
?, ?, 0.2 , 88
0.2, 88, 0.5, 89
0.5, 89, 0.7, 87
0.7, 87, 0.4, 88
0.4, 88, 1.0, 90
1.0, 90, ?, ?
|
我们可以看到,正如在上面的单变量时间序列示例中,我们可能需要删除第一行和最后一行,以便训练我们的监督学习模型。
这个例子提出了如果我们想要在下一个时间步骤中预测度量1和度量2又会怎样?
在这种情况下也可以使用滑动窗口方法。
使用上述相同的时间序列数据集,我们可以将其描述为一个监督学习问题,其中我们预测具有相同窗口宽度1的度量1和度量2,如下所示。
|
1
2
3
4
5
6
7
|
X1, X2, y1, y2
?, ?, 0.2, 88
0.2, 88, 0.5, 89
0.5, 89, 0.7, 87
0.7, 87, 0.4, 88
0.4, 88, 1.0, 90
1.0, 90, ?, ?
|
没有多少有监督的学习方法可以在不修改的情况下处理多个输出值的预测,但是一些方法(如人工神经网络)几乎没有麻烦。
我们可以将预测多个值预测为一个序列。在这种情况下,我们预测了两个不同的输出变量,但我们可能想要预测一个输出变量之前的多个时间步长。
这称为多步骤预测,并在下一节中介绍。
多步骤预测的滑动窗口
提前预测的时间步数很重要。
同样,根据预测的时间步数,对问题使用不同的名称是传统的:
- 一步预测:这是预测下一个时间步(t + 1)的地方。
- 多步骤预测:这是预测两个或更多未来时间步骤的地方。
到目前为止,我们所看到的所有例子都是一步式的预测。
有多种方法可以将多步骤预测建模为监督学习问题。我们将在未来的文章中介绍其中一些替代方法。
目前,我们正在关注使用滑动窗口方法构建多步预测。
考虑上面第一个滑动窗口示例中相同的单变量时间序列数据集:
|
1
2
3
4
5
6
|
time, measure
1, 100
2, 110
3, 108
4, 115
5, 120
|
我们可以将这个时间序列作为一个窗口宽度为1的有监督学习的两步预测数据集,如下所示:
|
1
2
3
4
5
6
7
|
X1, y1, y2
? 100, 110
100, 110, 108
110, 108, 115
108, 115, 120
115, 120, ?
120, ?, ?
|
我们可以看到第一行和最后两行不能用于训练监督模型。
显示输入变量的负担也是一个很好的例子。具体而言,监督模型只有X1可以用来预测y1和y2。
在你的问题上需要仔细的思考和实验来找到一个窗口宽度,从而获得可接受的模型性能。
1673

被折叠的 条评论
为什么被折叠?



