Keras 如何提高LSTM的精度?

Keras 如何提高LSTM的精度?,keras,lstm,Keras,Lstm,我试图通过“LSTM序列到序列”模型预测时间序列数据。 我用过凯拉斯。 我应该在模型中更改什么以提高准确性 输入:过去4个时间步 输出:未来2步 功能数量:5 数据维度: train_x (1308, 4, 5) train_y (1308, 2, 5) test_x (118, 4, 5) test_y (118, 2, 5) 结果:[mse:0.021793483835408241,准确度:0.54661016696590492] 模型定义: def fit_model(n_cell

我试图通过“LSTM序列到序列”模型预测时间序列数据。 我用过凯拉斯。 我应该在模型中更改什么以提高准确性

  • 输入:过去4个时间步
  • 输出:未来2步
  • 功能数量:5
  • 数据维度:

    train_x (1308, 4, 5)
    train_y (1308, 2, 5)
    test_x (118, 4, 5)
    test_y (118, 2, 5)
    
结果:
[mse:0.021793483835408241,准确度:0.54661016696590492]

模型定义:

def fit_model(n_cells):
    model=Sequential()
    model.add(LSTM(n_cells, input_shape=(4,5)))
    model.add(Dense(n_cells))
    model.add(RepeatVector(2))  
    model.add(LSTM(n_cells,  input_shape=(10,5), return_sequences=True))
    model.add(TimeDistributed(Dense(5,  activation='linear')))  
    model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])
    print(model.summary())
    hist=History()
    for i in range(100):
    hist=model.fit(train_x, train_y, batch_size=32, epochs=1, validation_split=0.33, shuffle=False)
    model.reset_states()
    loss=model.evaluate(test_x, test_y, verbose=0)
    print(loss)

cells = [150]
for value in cells:
    fit_model(value)

您似乎正在执行回归,所以在这种情况下精度没有意义。为什么在我执行回归时精度并不重要?因为精度仅适用于分类(离散输出),所以您可以比较是否相等。在回归中,您预测的是一个连续值,因此如果目标值为0.99,而网络预测值为1.0,则将其视为错误分类。所以准确是没有意义的。哦,谢谢!!!:)您似乎正在执行回归,所以在这种情况下精度没有意义。为什么在我执行回归时精度并不重要?因为精度仅适用于分类(离散输出),所以您可以比较是否相等。在回归中,您预测的是一个连续值,因此如果目标值为0.99,而网络预测值为1.0,则将其视为错误分类。所以准确是没有意义的。哦,谢谢!!!:)