我已经定义了一个自定义的RMSE函数:
def rmse(y_pred, y_true):
return K.sqrt(K.mean(K.square(y_pred - y_true)))
我正在将其与Keras提供的均方误差进行比较:
keras.losses.mean_squared_error(y_true, y_pred)
对于某些(相同的)预测,我得到的MSE和RMSE指标值分别为:
mse:115.7218 - rmse: 8.0966
现在,当我将MSE开方时,得到了10.7574,显然比自定义的RMSE函数输出的要高。我还没有找出其中的原因,也没有找到任何相关的帖子。RMSE函数中可能有错误吗?还是与Keras如何定义mse函数中的axis=-1有关(我还没有完全理解它的作用)?
这是我调用RMSE和MSE的地方:
model.compile(loss="mae", optimizer="adam", metrics=["mse", rmse])
所以我期望MSE的平方根与RMSE相同。
我最初在Cross Validated上问了这个问题,但被认为是不相关的。
mse: 115.7218 - rmse: 8.0966
是从哪里来的?是从 model.evaluate 还是 model.fit 还是其他地方?请提供尽可能多的信息。 - meowongacmse 60.0054 - rmse 6.8625
。MSE的平方根为7.7463
。 - mka