我们如何将时间序列数据转换为监督学习问题?

数据挖掘 机器学习 预测建模 特征选择 特征工程
2021-09-16 21:05:06

我正在为机器学习模型准备数据。我想将时间序列数据作为正常的监督学习预测来处理。假设我有一个汽车速度数据,并且我有几个汽车模型,例如

+-----+---------+-------------+
| day |  Model  |   Speed     |
+-----+---------+-------------+
|   1 | Bentley | 20.47 km/h  |
|   2 | Bentley | 32.22 km/h  |
|   3 | Bentley | 23.11 km/h  |
|   1 | BMW     | 37.60 km/h  |
|   2 | BMW     | 27.90 km/h  |
|   3 | BMW     | 40.47 km/h  |

所以我想在训练中处理几个模型,以便预测宾利和宝马的速度。

我已经将数据转换为这样的训练:

+---------+------------+------------+-------------------+
|  Model  |   day_1    |     day_2  |    label == day_3 |
+---------+------------+------------+-------------------+
| Bentley | 20.47 km/h | 32.22 km/h | 23.11 km/h        |
| BMW     | 37.60 km/h | 27.90 km/h | 40.47 km/h        |
+---------+------------+------------+-------------------+

这是一个正确的方法吗?

3个回答

由于您总是有固定的天数,因此我认为您的方法很好。为了帮助学习算法,您可以考虑为每个实例添加一些统计信息作为特征,例如:

  • 最近 N 天的平均值
  • 差异日N-day(N-1)(进化)
  • ...

当然,这只有在特征和预测速度之间确实存在依赖关系时才有效。

简短的回答:是的。

长答案:见这里:https ://machinelearningmastery.com/time-series-forecasting-supervised-learning/

是的,它是正确的。你可以通过两种方式做到这一点:

  1. 经典回归方法:您输入序列[ A B C D ]以进行预测[ E ],或者[ E F G ]在多步预测的情况下。

  2. Seq2seq 方法:您输入序列[ A B C D ]来预测序列[ B C D E ]- 即相同的输入序列但向前移动。

这两种方法都可以工作。如果您正在使用一系列小长度(例如 3),我建议您使用第一种方法。