python - 如何将特征单独输入到LSTM模型中

标签 python machine-learning keras deep-learning lstm

我尝试使用 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/

相关文章:

python - 错误: "CUDNN STATUS NOT INITIALIZED" in keras-based convolutional network

python - Django 为静态文件返回 404

python - numpy 数组转换成对

machine-learning - 如何优化神经网络中的动量项

tensorflow - Keras 中按小数因子进行上采样

keras - pytorch 的交叉熵损失与 keras 的 "categorical_crossentropy"不同吗?

python - 正则表达式,按字符串中的整数计数报告位置

python - 按降序对相应字符串的数字进行排序

machine-learning - 什么代表 Keras 中训练结果的损失或准确性

python - 我的数据有 14 个属性和 303 个观察值,但是当应用大于 1 的 k 的 knn 值时会出现错误