我正在尝试实现一个 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(。
谢谢。
不需要转换为分类数据。归一化是一个很好的起点,但话虽如此,如果你愿意,你可以通过将时间四舍五入到最接近的小时来使时间离散。通过这种方式,您可以对其进行分类,这当然会改变网络获得的信息。
另一种方法可能是在几秒钟内获取事件之间的差异并将其规范化。这样,数据就不会偏向于不断增加的时间输入。