我正尝试将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。这样,我就可以将我的功能用作单独的输入。
答案 0 :(得分:2)
LSTM模型采用3维张量作为维度(batch-size, time-length, num-features)
的输入。
要回答您的问题,您将必须将这些手工制作的功能与这四个原始功能连接在一起,可以对其进行规范化以将所有功能放大到相同的比例,然后通过(batch-size, time-length, features+x)
作为LSTM模型的输入。