时间序列预测基础教程系列(2)_用构建监督学习型数据进行时间序列预测

时间序列预测可以被视为监督学习问题。

通过重新构建时间序列数据,您可以访问针对您的问题的标准线性和非线性机器学习算法套件。

在这篇文章中,您将了解如何重新构建时间序列问题,作为机器学习的监督学习问题。阅读这篇文章后,你会知道:

  • 什么是监督学习,以及它是如何成为所有预测建模机器学习算法的基础。
  • 用于构建时间序列数据集的滑动窗口方法以及如何使用它。
  • 如何使用滑动窗口进行多变量数据和多步预测。

 

监督机器学习

大多数实际机器学习使用监督学习。

监督学习是输入变量(X)和输出变量(y)的地方,您使用算法来学习从输入到输出的映射函数。

                                                         Y = f(X)

目标是近似真实的底层映射,以便当您有新的输入数据(X)时,可以预测该数据的输出变量(y)。 

下面是监督学习数据集的设计示例,其中每行是由一个输入变量(X)和一个要预测的输出变量(y)组成的观察。

X, y
5, 0.9
4, 0.8
5, 1.0
3, 0.7
4, 0.9

它被称为监督学习,因为从训练数据集学习算法的过程可以被认为是监督学习过程的教师。

我们知道正确的答案; 该算法迭代地对训练数据进行预测,并通过进行更新来纠正。当算法达到可接受的性能水平时,学习停止。

监督学习问题可以进一步分为回归和分类问题。

  • 分类:分类问题是当输出变量是一个类别时,例如“ 红色 ”和“ 蓝色 ”或“ 疾病 ”和“ 无疾病”
  • 回归:回归问题是当输出变量是实际值时,例如“ 美元 ”或“ 权重 ”。上面的设想示例是回归问题。

时间序列数据的滑动窗口

时间序列数据可以表达为监督学习。

给定时间序列数据集的数字序列,我们可以将数据重组为看起来像监督学习问题。我们可以通过使用先前的时间步长作为输入变量并使用下一个时间步作为输出变量来完成此操作。

让我们以一个例子来具体化。想象一下,我们有一个时间序列如下:

time, measure
1, 100
2, 110
3, 108
4, 115
5, 120

我们可以通过使用前一时间步的值来预测下一个时间步的值,将此时间序列数据集重组为监督学习问题。以这种方式重新组织时间序列数据集,数据看起来如下 

X, y
?, 100
100, 110
110, 108
108, 115
115, 120
120, ?

查看上面转换的数据集并将其与原始时间序列进行比较。以下是一些观察: 

  • 我们可以看到前一个时间步长是输入(X),下一个时间步长是我们监督学习问题中的输出(y)。
  • 我们可以看到观察之间的顺序被保留,并且在使用该数据集训练监督模型时必须继续保留。
  • 我们可以看到,我们没有先前的值可用于预测序列中的第一个值。我们将删除此行,因为我们无法使用它。
  • 我们还可以看到,我们没有已知的下一个值来预测序列中的最后一个值。我们也可能希望在训练我们的监督模型时删除此值。

使用先前时间步骤来预测下一个时间步骤称为滑动窗口方法。简而言之,在一些文献中它可以被称为窗口方法。在统计和时间序列分析中,这称为滞后或滞后方法。

先前时间步数称为窗口宽度或滞后大小。

这个滑动窗口是我们如何将任何时间序列数据集转换为监督学习问题的基础。从这个简单的例子中,我们可以注意到一些事情:

  • 我们可以看到这可以如何将时间序列转换为回归或分类监督学习问题,用于实值或标记的时间序列值。
  • 我们可以看到,一旦按照这种方式准备时间序列数据集,可以应用任何标准的线性和非线性机器学习算法,只要保留行的顺序即可。
  • 我们可以看到如何增加宽度滑动窗口以包含更多的先前时间步长。
  • 我们可以看到滑动窗口方法如何用于具有多个值的时间序列,或所谓的多变量时间序列。

我们将探讨滑动窗口的一些使用,接下来开始使用它来处理时间序列,每个时间步骤有多个观察点,称为多变量时间序列。

具有多变量时间序列数据的滑动窗口

在时间序列数据集中记录的给定时间的观测数量很重要。

传统上,使用不同的名称:

  • 单变量时间序列:这些数据集中每次只观察到一个变量,例如每小时的温度。上一节中的示例是单变量时间序列数据集。
  • 多变量时间序列:这些是每次观察到两个或多个变量的数据集。

大多数时间序列分析方法,甚至关于该主题的书籍,都集中在单变量数据上。这是因为它是最容易理解和使用的。多变量数据通常更难以使用。模型更难,而且许多经典方法往往表现不佳。

使用机器学习时间序列的最佳位置是经典方法的落后。这可能是复杂的单变量时间序列,并且考虑到额外的复杂性,更可能是多变量时间序列。

下面是另一个工作示例,使滑动窗口方法具体为多变量时间序列。

假设我们有下面设想的多变量时间序列数据集,每个时间步都有两个观察结果。我们还假设我们只关注预测measure2

time, measure1, measure2
1, 0.2, 88
2, 0.5, 89
3, 0.7, 87
4, 0.4, 88
5, 1.0, 90

我们可以将此时间序列数据集重新构建为窗口宽度为1的监督学习问题。 

这意味着,我们将使用以前的时间步长值措施1measure2。我们还将为measure1提供下一个时间步长值。然后我们将预测measure2的下一个时间步长值。

这将为我们提供3个输入要素和一个输出值,以预测每种训练模式。

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, ?, ?

我们可以看到,就像上面的单变量时间序列示例一样,我们可能需要删除第一行和最后一行以训练我们的监督学习模型。 

这个例子提出,如果我们想预测什么都问题措施1measure2下一个时间步长?

在这种情况下也可以使用滑动窗口方法。

使用上面相同的时间序列数据集,我们可以短语作为我们预测既是监督学习问题措施1measure2一个相同窗口宽度,如下。

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)的地方。
  • 多步预测:这是预测两个或更多未来时间步骤的位置。

到目前为止,我们所看到的所有例子都是一步预测。

有许多方法可以将多步预测建模为监督学习问题。我们将在以后的文章中介绍其中一些替代方法。

目前,我们正专注于使用滑动窗口方法构建多步预测。

考虑来自上面第一个滑动窗口示例的相同的单变量时间序列数据集:

time, measure
1, 100
2, 110
3, 108
4, 115
5, 120

我们可以将这个时间序列构建为一个两步预测数据集,用于窗口宽度为1的监督学习,如下所示: 

X1, y1, y2
? 100, 110
100, 110, 108
110, 108, 115
108, 115, 120
115, 120, ?
120, ?, ?

我们可以看到第一行和最后两行不能用于训练监督模型。 

这也是显示输入变量负担的一个很好的例子。具体而言,监督模型仅使用X1来预测y1y2

您的问题需要仔细考虑和实验才能找到导致模型性能可接受的窗口宽度。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值