Слишком низкая точность LSTM - PullRequest
0 голосов
/ 14 марта 2019

Я новый ученик, я просто пытаюсь получить точность и проверять точность, используя приведенный ниже код

model = Sequential()
model.add(LSTM(10, input_shape=(train_X.shape[1], train_X.shape[2])))
#model.add(Dropout(0.2))
#model.add(LSTM(30, input_shape=(train_X.shape[1], train_X.shape[2])))
model.add(Dense(1), return_sequences=True)
model.compile(loss=’mae’, optimizer=’adam’, metrics=[‘accuracy’])
# fit network
history = model.fit(train_X, train_y, epochs=50, batch_size=120, validation_data=(test_X, test_y), verbose=2, shuffle=False)
# plot history
pyplot.plot(history.history[‘loss’], label=’train’)
pyplot.plot(history.history[‘val_loss’], label=’test’)
pyplot.legend()
pyplot.show()
print(history.history[‘acc’])

Поскольку значение потерь очень низкое (около 0,0136), несмотря на то, что я 'м. Получаемая точность составляет 6,9%, а достоверность проверки составляет 2,3% соответственно, что является очень низким

1 Ответ

3 голосов
/ 14 марта 2019

Это связано с тем, что точность имеет значение только для классификации задач;для регрессионных (то есть числовых предсказаний), таких как ваша, точность не имеет смысла .

Более того, Керас, к сожалению, не будет «защищать» вас или любого другого пользователя оттакие бессмысленные запросы в вашем коде, то есть вы не получите никакой ошибки или даже предупреждения, что вы пытаетесь сделать что-то, что не имеет смысла, например, запросить точность в настройке регрессии;см. мой ответ в Какая функция определяет точность в Керасе, когда потеря представляет собой среднеквадратическую ошибку (MSE)? для получения дополнительной информации и практической демонстрации (аргумент идентичен в случае MAE вместо MSE, поскольку обафункции потерь означают проблемы регрессии).

В настройках регрессии обычно метрика производительности совпадает с потерей (здесь MAE), поэтому вы должны просто удалить аргумент metrics=[‘accuracy’] из компиляции модели и беспокоиться только оВаша потеря (которая, как вы говорите, действительно мала).

...