keras lstm时间序列数据

时间:2018-05-18 10:28:42

标签: python time keras lstm

我正在尝试实施一个lstm模型,其数据在一天中的不同时刻每天测量一次。

例如,假设我的数据集的最后一个输入是在2018年5月16日测量的。我的数据是这样的:

        Velocity        Time 
0        56.122         3600
1        56.114         3601
...      ...            ...
3599     75.043         7199

时间以秒为单位。从3600到7199表示从凌晨1:00到凌晨2:00。

假设之前的输入是在前一天(5月15日)00:00到00:15之间测量的。

        Velocity        Time 
0        6.232           0
1        6.197           1
...      ...             ...
899      5.507           899

问题是我在创建LSTM模型时不知道如何处理'时间'功能。

目前,我已经填充了我的数据,因此它们都具有相同的形状。例如,对于5月15日的输入,我现在

        Velocity        Time 
0        6.232           0
1        6.197           1
...      ...             ...
899      5.507           899
900      -1              -1
...      ...             ...
3599     -1              -1

我在示例中假设1小时是输入的最大时间长度。

我是否需要将时间转换为分类数据?因为我使用sklearn.preprocessing.MinMaxScaler(我在填充之前做过)来规范化我的数据(这里没有看到)。如果没有,我是否需要缩短时间?

我有11200个输入。每个输入(X_train)的形状为(3600,2)。每个输入都有一个输出(它是一个布尔值True或False)。

感谢。

1 个答案:

答案 0 :(得分:1)

您无需转换为分类数据。归一化是一个很好的起点,但是如果你想要的话可​​以通过将它舍入到最接近的小时来使时间离散。通过这种方式,您可以对其进行分类,这当然会改变网络获取的信息。

另一种方法可能是在几秒钟内获取事件之间的差异并将其标准化。这样,数据就不会偏向于不断增加时间输入。