Интерпретация среднеквадратичной ошибки в модели LSTM (двунаправленная или многопараллельная)

Я играю с временными рядами и Keras LSTM 1) двунаправленной и 2) многопараллельной моделью. Я сохраняю лучшую модель по метрике «mean_squared_error». Мой набор данных нормализован с помощью MinMaxScaler (диапазон по умолчанию от 0 до 1). Среднеквадратическая ошибка составляет 0,02 в тестовой части набора данных. Означает ли это, что средняя ошибка моей модели составляет 14%, то есть 0,02 ^ 0,5. Является ли это хорошей практической интерпретацией точности модели?

Предположим, я хочу предсказать четвертое значение в этой последовательности:

[10, 20, 30, 40, 50, 60, 70, 80, 90]

Итак, мои x_test и y_test выглядят так:

[10 20 30] 40
[20 30 40] 50
[30 40 50] 60
[40 50 60] 70
[50 60 70] 80
[60 70 80] 90

И код:

cp = [ModelCheckpoint(filepath=path+"/epochBi.h5", monitor='mean_squared_error', verbose=1, save_best_only=True)]
model.compile(optimizer='adam', loss='mse', metrics= ['mean_squared_error'])
history_callback = model.fit(X_train, y_train, epochs=200, verbose=1, callbacks=cp)
model.load_weights(path+"/epochBi.h5")
score = model.evaluate(X_test, y_test, verbose=1)

Предположим, что я оцениваю исходный набор данных, как мне интерпретировать MSE = 0,02?


person MarioZ    schedule 17.09.2019    source источник
comment
ты смотрел мой ответ?   -  person eugen    schedule 18.09.2019


Ответы (2)


ОБНОВЛЕНИЕ Вопрос был обновлен и, следовательно, новый комментарий

Опять же, ваш MSE, равный 0,2, НЕ ОЗНАЧАЕТ 14% чего-либо, это просто скаляр, и вы не можете использовать его в процентах от вашей основной истины.

Является ли это хорошей практической интерпретацией точности модели?

Я бы задал этот вопрос по-другому, what does it mean to me?

Что ж, глядя на ваши целевые значения в диапазоне от 40 до 90, вы можете сказать, что в среднем ваша ошибка составила 0,14. Теперь, если вам нужно больше деталей, это означает, что когда вы предсказывали 40, вы угадали 39,86, когда 50 --> 50,14, 60 --> 59,86 и т. д. Но это в среднем.

Надеюсь, вы уже поняли идею


Давайте посмотрим на формулу среднеквадратичной ошибки (MSE):

введите здесь описание изображения

Таким образом, это просто среднее значение квадрата разницы между прогнозируемыми и фактическими точками данных. В вашем случае квадратный корень MSE (RMSE) составляет 0,02 ^ 0,5 или около 0,14 (округлено).

Означает ли это, что средняя ошибка моей модели составляет 14%?

Нет, вы не можете сказать, что ваша ошибка составляет 14%, когда вы получаете убыток 0,14. 0,14 - это просто значение ошибки, и каждая ваша отдельная ошибка могла быть отрицательной или положительной, что делает их сумму равной нулю, но не их сумму в квадрате.

Является ли это хорошей практической интерпретацией точности модели?

Зависит от ваших целей. Обычно вы измеряете точность в зависимости от некоторых других показателей, таких как MAE, R в квадрате и других. Если предположить, что вы не перемасштабировали свои данные до их первоначальной величины, то невозможно узнать, насколько это хорошо или плохо в абсолютном выражении. Поэтому я предлагаю вам измерить MSE на ваших масштабированных данных, а затем решить, если это еще не сделано.

person eugen    schedule 17.09.2019
comment
У меня была оценка исходных данных, как вы предлагаете. Хотя я думал, что это не регулярная процедура. Далее я подумал, что будет лучше получить MSE в интервале от 0 до 1, а затем применить результат к исходным значениям. Я понимаю, что вы написали, и я также посмотрел на уравнение, когда писал ошибку 14%, если моя модель имеет MSE 0,02. Я попрошу вас попробовать другой пример, который доказывает, что не имеет значения, использовал ли я исходные или масштабированные значения. Yсреднее=0,6; Y1 = 0,5; MSE=(0,5-0,6)^2=0,01, если исходные данные масштабируются*1000, тогда Ymean=600; У1 = 500; MSE=(500-600)^2=10000долларов США - person MarioZ; 18.09.2019
comment
Ваша интерпретация формулы неверна. Это не квадрат разности среднего Yhat и Y, а каждой отдельной точки. Допустим, у нас есть две точки данных: Yhat [0,5, 0,6] и Y[1, 1]. Yhat_average= 0,55 Y_average = 1, MSE_by_your_formula = ((0,45)^2)/2, MSE_by_the_original = ((0,5)^2+(0,6)^2)/2 Надеюсь, вы поняли идею - person eugen; 19.09.2019
comment
Спасибо за ваше терпение со мной. Вы мне очень помогаете, но мне снова нужно ваше объяснение двунаправленной модели LSTM, если у вас есть время. Поэтому я обновил вопрос. - person MarioZ; 19.09.2019
comment
Еще раз спасибо за терпение и точные ответы. - person MarioZ; 19.09.2019

Вы используете MSE, который измеряет расстояние между вашим модельным ответом и фактическим. Возможно, ваша модель никогда точно не угадывает вашу цель, но ее предположение достаточно близко к цели. Таким образом, вы не можете вычислить процент или точность здесь. Для получения дополнительной информации вы можете прочитать о различиях между моделями регрессии и классификации.

person amin    schedule 17.09.2019
comment
Итак, что бы вы написали об объяснении MSE модели LSTM. p.s. Посмотрите на пример игрушки в комментарии выше. - person MarioZ; 18.09.2019