我尝试使用 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, features+x)
作为 LSTM 模型的输入。
关于python - 如何将特征单独输入到LSTM模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58654841/