【问题标题】:How to build a dataset for time-series classification?如何为时间序列分类构建数据集?
【发布时间】:2018-04-11 22:59:23
【问题描述】:

我从时间序列分类开始,在理解应该如何构建我的训练集时遇到了一些麻烦。我目前的数据是这样的:

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 为给定的User ID 记录。目标是在时间t 发生/未发生的事件。我愿意在新的给定时间t 为数据集的所有User IDs 提供一组新功能来检测此事件。

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

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

我也在考虑more recent approaches,比如“循环神经网络架构 (LSTM)”。我如何构建一个训练集来从上面的数据集中提供这个模型?

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

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

【问题讨论】:

  • 据我所知,您有一个简单的二元分类问题(目标是 0 或 1)。所以你必须找到输入和目标之间的关系。不需要对数据进行其他预处理。您可以为此使用多种技术:神经网络、遗传编程等......

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


【解决方案1】:

有几种方法可以处理时间序列:

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

【讨论】:

    猜你喜欢
    • 2019-01-06
    • 2021-09-23
    • 2020-01-23
    • 2019-07-06
    • 2019-10-11
    • 2020-03-11
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多