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(。

谢谢。

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

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

最新更新