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