我正在尝试将LSTM用于以下时间序列分类问题。我的数据集有大约2000个数据点,每个数据点都有25个长度为4的时间序列。

model = Sequential()
model.add(LSTM(100, input_shape=(25,4)))
model.add(Dense(50))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])


但是,LSTM模型的效果非常差,结果却很差。尽管这令人不安,但我认为LSTM的结果很低,因为它无法捕获时间序列中的一些重要特征。

在那种情况下,我想知道是否可以为模型提供一些手工制作的功能以及时间序列?如果是这样,请让我知道该怎么做。

如果需要,我很乐意提供更多详细信息。

编辑:
我在考虑是否可以在这方面使用kera的功能性API。这样,我就可以将自己的功能用作单独的输入。

最佳答案

LSTM模型采用3维张量作为输入,尺寸为(batch-size, time-length, num-features)

要回答您的问题,您必须将这些手工制作的功能与这四个原始功能连接起来,可以对其进行规范化以将所有功能缩放到相同的比例,然后将(batch-size, time-length, features+x)作为输入传递给LSTM模型。

关于python - 如何将特征分别输入到LSTM模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58654841/

10-12 23:09