使用Scikit-learn训练线性回归模型时,检查像model.coef_和model.intercept_这样的系数可以提供初步信息。然而,一个基本问题出现了:模型的表现到底有多准确?仅仅拟合一个模型是不够的;客观地衡量其表现必不可少。这就是评估指标的作用。
对于回归任务,我们预测连续值,评估指标衡量了我们模型的预测值(y^)与实际目标值(y)有多接近。实际值与预测值之间的差(yi−y^i)被称为该数据点的残差或误差。回归指标通常基于汇总这些残差,覆盖整个数据集(或特定子集,如测试集)。
我们来看看一些最常用的回归模型评估指标。
平均绝对误差 (MAE)
平均绝对误差 (MAE) 是最简单、最直观的指标之一。它衡量了预测值与实际值之间的平均绝对差。
MAE的公式是:
MAE=n1∑i=1n∣yi−y^i∣
这里:
- n 是数据点的数量。
- yi 是第 i 个数据点的实际值。
- y^i 是第 i 个数据点的预测值。
- ∣...∣ 表示绝对值。
解释:
- 单位: MAE与目标变量的单位相同(例如,如果您预测以美元计的房价,MAE也将以美元为单位)。
- 范围: MAE的范围从0到∞。值越接近0表示模型表现越好,这意味着平均预测误差小。
- 对异常值的敏感性: 因为它使用绝对差,与对误差进行平方的指标相比,MAE对大误差(异常值)的敏感性较低。它根据误差的大小线性地处理所有误差。
MAE给出了一个直观的平均误差大小。如果您的模型MAE为10,这意味着平均而言,其预测值与实际值相差10个单位。
均方误差 (MSE)
均方误差 (MSE) 是另一个广泛使用的指标。它不使用绝对差,而是计算预测值与实际值之间平方差的平均值。
MSE的公式是:
MSE=n1∑i=1n(yi−y^i)2
解释:
- 单位: MSE的单位是目标变量单位的平方(例如,房价的美元平方)。这使得它在原始问题的背景下更难直接解释。
- 范围: MSE的范围从0到∞,值越接近0越好。
- 对异常值的敏感性: 对误差进行平方会给更大的误差赋予更高的权重。一个相差10个单位的预测会对总和贡献100,而一个相差2个单位的预测只贡献4。这意味着MSE对犯大错的模型给予重罚。
- 数学特性: 平方项使得MSE可微分,这对用于训练某些模型的特定数学优化技术有利。
虽然由于其平方单位而直观性较差,但如果那些误差代价特别高或非常重要需要避免,那么MSE对大误差的敏感性可能是有益的。
均方根误差 (RMSE)
均方根误差 (RMSE) 简单来说就是MSE的平方根。它解决了MSE主要的解释问题,将指标恢复到目标变量的原始单位。
RMSE的公式是:
RMSE=MSE=n1∑i=1n(yi−y^i)2
解释:
- 单位: RMSE与目标变量的单位相同,类似于MAE。
- 范围: RMSE的范围从0到∞,值越低表示拟合越好。
- 对异常值的敏感性: 像MSE一样,RMSE对大误差的惩罚比MAE更重,因为在开方之前进行了平方运算。然而,其解释通常比MSE更容易,因为单位与目标变量匹配。
RMSE可以说是最常用的回归指标。它提供了误差典型大小的衡量标准,以原始单位表示,同时对较大的偏差仍然敏感。如果您的RMSE为15,这表明模型的预测值通常与实际值相差约15个单位,并且与MAE相比,更大的误差对最终指标产生了不成比例的更大影响。
R平方 (R2) 分数 (决定系数)
与之前衡量误差大小的指标不同,R平方 (R2) 分数,也称为决定系数,衡量了模型特征解释的目标变量方差的比例。
它将模型的表现(使用平方误差和SSE,即 n×MSE)与一个只预测所有输入的目标变量均值(yˉ)的基准模型(其误差是总平方和SST)进行比较。
R2 的公式是:
R2=1−∑i=1n(yi−yˉ)2∑i=1n(yi−y^i)2=1−SSTSSE
这里 yˉ=n1∑i=1nyi 是实际值的平均值。
解释:
- 单位: R2 是一个无单位的指标,表示一个比例。
- 范围:
- R2 为1表示模型完美预测了目标变量(解释了100%的方差)。
- R2 为0表示模型的表现不优于始终预测目标值平均值的基准模型。
- R2 分数可以是负数。当模型表现差于基准平均值模型时,就会发生这种情况,这意味着与仅仅猜测平均值相比,模型的预测甚至不如简单地猜测平均值。
- 背景: R2 提供了一个相对拟合度衡量标准。“好”的 R2 值取决于具体背景。在一些领域(如物理学),期望有较高的 R2 值(例如 > 0.95)。而在其他领域(如社会科学),R2 为0.3可能就被认为是有用的。它不告诉您平均误差大小,只表明您的模型相对于总方差,比简单地预测平均值好多少。
选择合适的指标
评估指标的选择取决于您的特定目标和数据的特点:
- 如果您想要一个在原始单位下易于解释的指标,并且异常值不是主要问题或不应受到不成比例的惩罚,请使用 MAE。
- 如果您想要一个在原始单位下的指标,但需要对大误差施加更显著的惩罚,请使用 RMSE。它通常是一个不错的默认选择。
- MSE 主要在其数学特性有利时使用(由于单位解释困难,在最终评估中较不常用)。
- 当您需要了解模型解释的方差比例,并提供相对的拟合优度衡量时,请使用 R2。它对于比较模型的解释能力很有用,但不直接表示典型的预测误差大小。
通常,查看多个指标是有益的,以更全面地了解模型的表现。例如,高 R2 表示您的模型很好地捕捉了趋势,而低MAE或RMSE证实了典型的预测误差很小。
在下一节中,我们将看到如何使用Scikit-learn提供的函数轻松计算这些指标。