问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

深度学习模型评价指标详解:RMSE、MSE、MAE、MAPE与SMAPE

创作时间:
作者:
@小白创作中心

深度学习模型评价指标详解:RMSE、MSE、MAE、MAPE与SMAPE

引用
CSDN
1.
https://blog.csdn.net/qq_41300595/article/details/137839191

在深度学习模型的评估中,选择合适的评价指标至关重要。本文将介绍几种常用的回归模型评价指标,包括均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、平均绝对百分比误差(MAPE)以及对称平均绝对百分比误差(SMAPE)。通过这些指标,我们可以更全面地了解模型的预测性能。

均方误差(MSE)

均方误差(Mean Square Error)是衡量预测值与真实值之间差异的常用指标。其计算公式如下:

MSE的取值范围为[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。

均方根误差(RMSE)

均方根误差(Root Mean Square Error)是MSE的平方根,这样可以使数量级更加直观。例如,RMSE=10表示回归效果相比真实值平均相差10。其计算公式如下:

RMSE的取值范围同样为[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。

平均绝对百分比误差(MAPE)

平均绝对百分比误差(Mean Absolute Percentage Error)是衡量预测值与真实值之间相对误差的指标。其计算公式如下:

MAPE的取值范围为[0,+∞),MAPE为0%表示完美模型,MAPE大于100%则表示劣质模型。需要注意的是,当真实值有数据等于0时,存在分母0除问题,该公式不可用。

对称平均绝对百分比误差(SMAPE)

对称平均绝对百分比误差(Symmetric Mean Absolute Percentage Error)是对MAPE的改进,可以避免真实值为0时的分母0除问题。其计算公式如下:

需要注意的是,当真实值和预测值都等于0时,仍然存在分母0除问题。

Python代码实现

以下是上述评价指标的Python代码实现:

# coding=utf-8
import numpy as np
from sklearn import metrics

# MAPE和SMAPE需要自己实现
def mape(y_true, y_pred):
    return np.mean(np.abs((y_pred - y_true) / y_true)) * 100

def smape(y_true, y_pred):
    return 2.0 * np.mean(np.abs(y_pred - y_true) / (np.abs(y_pred) + np.abs(y_true))) * 100

y_true = np.array([1.0, 5.0, 4.0, 3.0, 2.0, 5.0, -3.0])
y_pred = np.array([1.0, 4.5, 3.5, 5.0, 8.0, 4.5, 1.0])

# MSE
print(metrics.mean_squared_error(y_true, y_pred)) # 8.107142857142858

# RMSE
print(np.sqrt(metrics.mean_squared_error(y_true, y_pred))) # 2.847304489713536

# MAE
print(metrics.mean_absolute_error(y_true, y_pred)) # 1.9285714285714286

# MAPE
print(mape(y_true, y_pred)) # 76.07142857142858,即76%

# SMAPE
print(smape(y_true, y_pred)) # 57.76942355889724,即58%

通过以上代码,我们可以方便地计算各种评价指标,从而更好地评估深度学习模型的性能。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号