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

Mean squred error interpretation in LSTM model (bidirectional or multiparallel)

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

您正在使用 MSE 来衡量您的模型答案与实际答案之间的距离。也许你的模型永远不会准确地猜测你的目标,但它的猜测足够接近目标。因此,您无法在此处计算百分比或准确度。 有关更多信息,您可以阅读回归和分类模型之间的差异。

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

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

Is it a good practical interpretation of the model's precision?

我会以不同的方式问这个问题,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(四舍五入)。

Does it mean that my model mean error is 14%

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

Is it good practical interpretation of the model precision?

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