LSTM模型中的均方误差解释(双向或多并行)

时间:2019-09-17 06:21:48

标签: python keras lstm mean-square-error

我正在使用时间序列和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?

2 个答案:

答案 0 :(得分:1)

您正在使用MSE来测量模型答案与实际答案之间的距离。也许您的模型永远无法完全猜出您的目标,但是其猜测足以接近目标。因此,您无法在此处计算百分比或准确性。 有关更多信息,您可能会了解回归模型和分类模型之间的差异。

答案 1 :(得分:1)

更新:问题已更新,因此有新评论

同样,您的0.2的MSE值不等于任何东西的14%,它只是一个标量,您不能将其作为基本事实的百分比。

  

这是对模型精度的良好实用解释吗?

我会以不同的方式问这个问题,what does it mean to me?

好吧,查看您的目标值范围从40到90,您可以说平均而言,您的误差为0.14。现在,如果您需要更多详细信息,这意味着当您预测40时,您会猜到39.86,而50-> 50.14、60-> 59.86,等等。但这是平均水平。

希望您现在就知道了


让我们看看均方误差(MSE)的公式:

enter image description here

因此,它只是预测数据点与实际数据点之间平方差的平均值。在您的情况下,MSE(RMSE)的平方根为0.02 ^ 0.5或约0.14(四舍五入)。

  

这是否意味着我的模型平均误差为14%

不,您不能说损失0.14时的误差是14%。 0.14只是误差的值,您每个误差都可能是负值或正值,使它们的总和为零,而不是平方和。

  

是对模型精度的良好实用解释吗?

取决于您的目标。通常,您还可以根据一些其他指标(例如MAE,R平方和其他指标)来测量准确性。假设您没有将数据重新缩放到其原始大小,那么就没有办法知道绝对值的好坏。因此,我建议您对重新缩放的数据测量MSE,然后再决定(如果尚未这样做)。