掩码似乎不适用于 LSTM 中的缺失值问题

数据挖掘 喀拉斯 lstm rnn
2022-02-11 19:36:02

我正在尝试使用 LSTM 来预测 keras 中的时间序列。我的输入数据形状是 (1000,6,1)(samples,timesteps,features)。在不同的时间步长有一些缺失的数据。例如,[2,1,1]=NaN,[3,4,1]=NaN。首先,我在 (0,1) 之间规范化所有这些数据,然后我尝试使用 fillNan 将这些 Nan 替换为特殊值(例如 -1)。最后,我使用 Masking 来转义特殊值。我的代码是这样的:

model = Sequential()
model.add(Masking(mask_value=1.5,input_shape=(train_X.shape[1], train_X.shape[2])))
model.add(LSTM(32))
model.add(Dense(3))
model.compile(loss='mae', optimizer='adam')
model.fit(train_X, train_y, epochs=50, batch_size=72,validation_data=(test_X, test_y), verbose=2, shuffle=False)

当我选择不同的特殊值时,结果发生了变化,我不知道问题出在哪里。train_X.shape=(700,6,1),train_y.shape=(300,3)。是不是因为在 trian_y 中也有 NaN 不是 Masked 的?

0个回答
没有发现任何回复~