如何为时间序列分类构建数据集?

时间:2017-10-30 21:06:04

标签: time-series keras classification sliding-window rnn

我从时间序列分类开始,并且难以理解我的训练集应该如何构建。我目前的数据如下所示:

Timestamp       User ID  Feature 1   Feature 2   ...    Feature N  target
2002-10-30         1        0            0       ...       1        0
2002-10-31         2        0            1       ...       1        0
...
...
2017-10-30         1        0            0       ...       0        1
2017-10-31         2        0            1       ...       0        0

这些功能是单热编码文字功能,在给定t的{​​{1}}时刻录制。目标是在User ID时间发生/未发生的事件。我愿意在新的给定时间t为所有User IDs数据集提供一组新功能时检测此事件。

我从this paper了解到,建模的一种方法是使用“滑动窗口分类器”

对于任何时间t,我可以将t中的功能聚合在一起,并设置一个更灵活的目标,即“事件发生与否t, t-1, ... t-n。这是构建这样一个分类器的正确方法吗?

我也在考虑more recent approaches喜欢“递归神经网络架构(LSTM)”。如何构建训练集以从上面的数据集中提供此模型?

ps:我打算用scikit-learn / Keras构建分类器。

提前感谢您的时间和答案。

1 个答案:

答案 0 :(得分:0)

使用时间序列的方法很少:

  1. 直接使用带有一些窗口的LSTM,因此您的数据将具有这样的形状(批处理,窗口,data_features_dimensions ...)
  2. 您可以使用Conv1D和其他一维方法,因此您可以找到一些模式。
  3. 您可以从Windows构建矩阵。这在初看起来并不是很符合逻辑,但是通过这种方式,你可以像LSTM那样以某种方式找到一些转移的模式。
  4. 您可以将时间序列视为信号并使用与音频处理相同的技术,例如使用CNN处理的构建频谱图