如何为时间序列分类构建数据集?
Posted
技术标签:
【中文标题】如何为时间序列分类构建数据集?【英文标题】: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)。所以你必须找到输入和目标之间的关系。不需要对数据进行其他预处理。您可以为此使用多种技术:神经网络、遗传编程等...... 【参考方案1】:有几种方法可以处理时间序列:
-
直接将 LSTM 与一些窗口一起使用,因此您的数据将具有这样的形状(批处理、窗口、data_features_dimensions...)
您可以使用 Conv1D 和其他一维方法,因此您可以找到一些模式。
您可以从 Windows 构建矩阵。乍一看这不是很合乎逻辑,但通过这种方式,您可以像 LSTM 那样找到一些变化的模式。
您可以将时间序列视为一个信号并使用与音频处理相同的技术,例如构建可以使用 CNN 处理的频谱图
【讨论】:
以上是关于如何为时间序列分类构建数据集?的主要内容,如果未能解决你的问题,请参考以下文章