【问题标题】:How to input features seperately to LSTM model如何将特征分别输入到 LSTM 模型
【发布时间】:2019-11-01 06:09:50
【问题描述】:

我正在尝试将 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。我不确定它是否会有所帮助,但是如果没有一些数据或您获得的准确性,我将无能为力...
  • @Hiten 你的意思是把我的时间序列映射到别的东西上。例如,我的时间序列如下 [0.9, 0.8. 0.12, ...., 0.88] 等。请告诉我如何将其映射到更高的维度:)
  • 使用某种核函数...如果您现在的属性是 x1,x2,...,xN,并且您认为 x1*x2 或 x1*x2*x3 可能是更好的功能,然后只需将这些值附加到您的数据中,并使用这个新数据集...

标签: python machine-learning keras deep-learning lstm


【解决方案1】:

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

要回答您的问题,您必须将这些手工制作的功能与您拥有的这四个原始功能连接起来,可能会将它们标准化以使它们都达到相同的规模,并将 (batch-size, time-length, features+x) 作为LSTM 模型的输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-18
    • 2020-11-12
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多