【发布时间】: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