我正在研究这种机器学习模型,以帮助预测时间序列数据 .

我有数据序列:

  • 每个时间步的多个功能

  • 一个输出,由序列末尾的两个值组成 . 这些输出是二进制“[1,0],[0,0],[0,1]”等...

我使用形状序列(1000,20)分批训练模型1000个数据点 .

我认为在最后使用带有密集层的LSTM(80)就可以了 . 但是当我训练模型时,它表现得非常双极 . 每列火车测试精度要求准确度为95.%,或准确度为27.% .

见下文:

这是我在Keras的模特:

model = Sequential()
model.add(LSTM(80,input_shape=(1000, 20), return_sequences=True))
model.add(Dense(2))
model.compile(loss='mean_absolute_error', optimizer='adam', metrics=['accuracy'])

这是我的数据:

输入:

形状(1001,1000,20)

输出:

形状(1001,1000,2)

注意:

(我实际上只对(1000,2)的最后一个值感兴趣) - 当处理整个序列时,最后的值是多少?

这是我看到的行为(注意准确性):

1001/1001 [==============================] - 94s 94ms /步 - 损失:6.9542e-04 - acc :0.6398 Epoch 98/100 1001/1001 [==============================] - 95s 95ms /步 - 损失:7.2331 e-04 - acc:0.6206 Epoch 99/100 1001/1001 [==============================] - 93s 93ms /步骤 - 损失:7.6055e-04 - acc:0.6356 Epoch 100/100 1001/1001 [============================== ] - 93s 93ms /步 - 损失:6.1643e-04 - acc:0.6365 1001/1001 [============================= =] - 8s 8ms /步模型精度:25.06%模型损失:0.07%

        • 要么 - - - - -

Epoch 97/100 1001/1001 [==============================] - 95s 94ms /步 - 损失:6.9479e -04 - acc:0.6324 Epoch 98/100 1001/1001 [==============================] - 94s 94ms /步 - 损失:6.5280e-04 - acc:0.6274 Epoch 99/100 1001/1001 [==============================] - 94s 94ms /步 - 损失:7.5665e-04 - acc:0.6399 Epoch 100/100 1001/1001 [========================== ====] - 93s 93ms /步 - 损失:7.5244e-04 - acc:0.6401 1001/1001 [========================= =====] - 8s 8ms /步模型精度:95.28%模型损失:0.06%

问题:

1)我使用的是正确的型号吗?

2)我可以做些什么来改进我的预测?

3)我应该尝试哪些其他型号?

非常感谢提前!