为什么计算RMSE和MAE的方法不一样,得到的数值一样呀

img


如上图,for循环里面计算的方法不一样,为什么出来数值一样哇

计算RMSE和MAE的方法不一样,但是得到的数值通常是一样的,这是因为它们都是衡量模型预测结果与真实结果之间的差异的指标。

RMSE是均方根误差(Root Mean Squared Error)的缩写,用于衡量预测值与真实值之间的平均误差。MAE是平均绝对误差(Mean Absolute Error)的缩写,用于衡量预测值与真实值之间的绝对误差。

虽然RMSE和MAE的计算方法不同,但它们都是衡量模型预测结果与真实结果之间的差异的指标。因此,当您使用这些指标来比较模型的性能时,它们的结果通常是相同的。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: 机器学习模型评估指标和调用方法中的 均方根误差(RMSE)是MSE的平方根,计算公式如下: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    RMSE=MSE=SSEn=1n∑i=1n(observedi−predictedi)2 RMSE =\sqrt{MSE}=\sqrt{\frac{SSE}{n}}= \frac{1}{n}\sum_{i=1}^n{(observed_i-predicted_i)^2} RMSE=MSE=nSSE=n1i=1n(observedipredictedi)2

           以下是sklearn中调用RMSE的示例代码:

    from sklearn.metrics import mean_squared_error
    Pred_Error = mean_squared_error(y_test,y_pred)
    Sqrt(Pred_Error)
    

    上述的三个评价指标均方误差、

  • 以下回答来自chatgpt:

    不能确定为什么你的RMSE和MAE计算结果相同,因为它们的计算方法不同,所以结果应该不同。但可能是数据样本较小或计算精度问题导致的。建议检查代码实现是否正确,或者使用scikit-learn等库函数来计算RMSE和MAE。具体的解决方案如下:

    1. 检查代码实现

    确保你在计算RMSE和MAE时使用了正确的公式,并且代码实现正确。可以参考参考资料中的公式和代码示例进行比对,发现问题后进行修改调试。

    1. 使用库函数计算RMSE和MAE

    可以使用Python中的库函数来计算RMSE和MAE,例如scikit-learn库中的mean_squared_error和mean_absolute_error函数。这些函数已经被广泛使用和测试,可以确保结果准确。具体代码如下:

    from sklearn.metrics import mean_squared_error, mean_absolute_error
    
    rmse = mean_squared_error(y_true, y_pred, squared=False)
    mae = mean_absolute_error(y_true, y_pred)
    

    其中y_true是真实值,y_pred是预测值。

    1. 调整计算精度

    如果数据样本较小或者受到计算精度的影响,可能导致RMSE和MAE计算结果相同。可以尝试调整计算精度,例如增加小数点的位数或者使用高精度计算库(例如Python的decimal库或numpy的float128类型)。但也要注意,过高的计算精度会导致计算速度变慢,所以需要平衡计算精度和计算速度的要求。

    综上所述,建议优先尝试使用库函数计算RMSE和MAE,并进行代码实现的检查和调试。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^