k折交叉验证的MAE估计

数据挖掘 机器学习 机器学习模型
2022-03-05 11:41:24

我有估算 k 折交叉验证的 RMSE 的代码,我认为它是正确的(摘自书籍:使用 Scikit-Learn、Keras 和 TensorFlow 进行机器学习,Aurélien Géron 的第二版)

scores = cross_val_score(forest_reg, a, b, scoring="neg_mean_squared_error", cv=10)
print(pd.Series(np.sqrt(-scores)).describe())



那么MAE呢?我应该使用(与sqrt):

scores = cross_val_score(forest_reg, a, b, scoring="neg_mean_absolute_error", cv=10)
print(pd.Series(np.sqrt(-scores)).describe())

或者这个(没有sqrt):

scores = cross_val_score(forest_reg, a, b, scoring="neg_mean_absolute_error", cv=10)
print(pd.Series(-scores).describe())

同样对于 MAE 估计,它应该是 -scoresor scores

1个回答

是单位的问题。

比较您在 RMSE 和 MAE 中所做的事情。

RMSE 是一种让 MSE 回到原始单位的方法,就像我们如何取方差的平方根来获得标准偏差一样。这更具有物理意义。当然,我们可以理解平方米,但是平方米呢?

当你做 MAE 时,你没有那个平方动作来给你平方单位。因此,虽然 MSE 以平方单位表示,但 MAE 以原始单位表示。

你可以取 MAE 的平方根,但最后你会得到单位为$或您使用的任何单位的平方根。结果是您的分散度量不在原始单位中,这可能是您想要的。

我认为取 MAE 的平方根没有任何用处。如果你这样做,请分享。那将是非常有趣的。