7天微课程day1——时间序列与监督学习

声明:

  1. 本文是系列课程的第一课
  2. 本文是对机器学习网站课程的翻译
  3. 尊重原作者,尊重知识分享者

时间序列预测与监督学习

时间序列预测可以被构建成监督学习问题,进而可以应用各种常见的机器学习算法。

通过本文你将学会:

  • 什么是监督学习?机器学习中的预测算法是如何工作的。
  • 滑动窗口方法及其在时间序列中的应用。
  • 如何使用滑动窗口处理多变量(multivariate)时间序列和时间序列的多步(multi-step)预测。

监督学习

监督学习占了机器学习的半壁江山。

Y = f(X)

监督学习的目标是输入 X X ,获得Y。在此之前,需要先通过已知的训练集 (X,Y) ( X , Y ) 学习一个映射函数 f() f ( )

下面是一个监督学习数据集的例子,通过 X X 预测y

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

为什么叫监督学习?
因为这个学习过程一直有数据做引导,就像老师引导学生。

算法不断的对训练数据中的 X X 作出预测,并通过训练数据中的y不断被修正,当获得一个满意的结果时,结束迭代。

监督学习可以分为两类:分类(classification)和回归(regression)。

  • 分类:输出是离散的,是类别,如“红”和“蓝”、“正常”和“异常”。
  • 回归:输出是连续的,是数值,回归问题又被称为预测。上面的监督学习的例子属于回归问题。

滑动窗口在时间序列中的应用

时间序列是有多个时间步的观测值组成的序列。将前几个时间步的值作为 X X ,当前时间步的值作为y,时间序列预测就转化成了监督学习中的回归问题。

举个例子,我们有如下的时间序列:

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 X 是前一时刻的值,输出y是当前值。
  • 时间序列的顺序信息在监督学习中得以保留。
  • 第一个时间步没有前一刻的信息,我们将会去掉第一行。
  • 最后一行只有输入 X X ,改行将不会参与到模型训练中。

这种使用先前时间步的值预测当前时刻值的方法称为滑动窗口方法(sliding window method),又称窗口法或滞后法(lag method)。滑动窗口法是将时间序列转化为监督学习问题的常用方法。

使用滑动窗口处理多变量时间序列

如果在一个时刻有多个观测值会怎样?

一般来说,时间序列可分为:

  • 单变量时间序列:一个时刻一个值,如温度序列和上面的例子。
  • 多变量时间序列:一个时刻多个值。

自然,多变量时间序列更难分析。

下面,我们继续使用滑动窗口处理多变量时间序列。假设有如下数据,每一个时刻有两个观测值measure1measure2,并且我们只对measure2感兴趣。

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

预测当前时刻的measure2,对于当前时刻的measure1=>如果两个变量相关的话,need it !!!上一刻的measure2=>need it!!!上一刻的measure1=>如果两个变量相关的话,最好也把它带上。

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

同样的,在训练过程中,第一行和最后一行要去掉。

如果我们同时对measure1和measure2感兴趣呢?
easy!

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

注意这次跟前面的不同在于X1,X2,X3,y变成了 X1,X2,y1,y2 X 1 , X 2 , y 1 , y 2

Unfortunately,大多数机器学习方法或人工神经网络搞不定多输出问题,需要一些改进才行。

用滑动窗口处理多步预测

如果要预测当前时刻和未来几个时刻怎么办?

依此,时间序列又可以分为:

  • 单步预测:预测当前时刻值。
  • 多步预测:预测从当前时刻开始多个时刻值。

前面的例子都是单步预测。

有很多对多步预测建模的方法,现在,我们只介绍滑动窗口法。有下列数据:

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

假设,我们要用时刻 t t 预测时刻t+1和时刻 t+2 t + 2 。即1 =>(2, 3),2=>(3, 4),3=>(4, 5)…

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

再次同样的,第一行和最后一行不参与训练。

Certainly,只用一个值来预测两个值是有点太难了,可以用n个先前时刻的值来预测,n的取值要是具体问题而定。

想知道在Python中怎样将时间序列转化成监督学习问题吗?参考下面的博客或者其译文。
How to Convert a Time Series to a Supervised Learning Problem in Python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值