我正在研究这种机器学习模型,以帮助预测时间序列数据 .
我有数据序列:
-
每个时间步的多个功能
-
一个输出,由序列末尾的两个值组成 . 这些输出是二进制“[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)我应该尝试哪些其他型号?
非常感谢提前!