回归模型有哪些评估指标?MAE、MSE、RMSE、R² 怎么选?
简化版
回归预测连续值,常用指标:MAE(平均绝对误差)= 误差绝对值的平均,单位和目标一致、易解释,对离群点比平方误差更稳健;MSE(均方误差)= 误差平方的平均,会放大大误差;RMSE=√MSE,把单位拉回目标量纲,但仍对大误差敏感;R²=1−残差平方和/总平方和,是在当前评估样本上相对“用该样本均值预测”基线的改进,通常不超过 1,也可能为负。选择指标要对应业务损失:关注典型绝对偏差可用 MAE,重罚大误差用 MSE/RMSE,R²作为同一目标、同一测试集上的无量纲补充,不能据此跨任意数据集直接比较。
详细版
主要指标:
| 指标 | 公式 | 特点 |
|---|---|---|
| MAE | `(1/n)Σ | yᵢ-ŷᵢ |
| MSE | (1/n)Σ(yᵢ-ŷᵢ)² | 平方放大大误差、对离群点敏感 |
| RMSE | √MSE | 单位同目标、对离群点敏感 |
| R²(决定系数) | 1 - SS_res/SS_tot | 拟合优度,≤1,越大越好 |
| MAPE | `(1/n)Σ | (yᵢ-ŷᵢ)/yᵢ |
MAE vs MSE/RMSE 核心区别:
- MAE 对每个误差线性对待——离群点不会被特别放大,稳健。
- MSE/RMSE 对误差平方——大误差被放大得更厉害,对离群点敏感(一个大错主导指标)。
R²:
R² = 1 - SS_res/SS_tot
SS_res = Σ(yᵢ-ŷᵢ)² (模型残差平方和)
SS_tot = Σ(yᵢ-ȳ)² (用均值预测的平方和)
- R²=1 完美;R²=0 和「只用均值预测」一样;R²<0 比均值还差。
完整版教学
一、回归指标衡量什么
回归预测连续数值(房价、销量),评估的核心是「预测值 ŷ 和真实值 y 差多少」。不同指标用不同方式度量这个「差」,关键区别在于怎么对待大误差(尤其离群点) 和是否便于解释/比较。理解这些区别,才能按场景选对指标。
二、MAE:平均绝对误差,稳健且好解释
MAE = (1/n) Σ |yᵢ - ŷᵢ|
对每个样本的误差取绝对值再平均。特点:
- 单位和目标一致:预测房价(万元),MAE 就是「平均差多少万元」,直观易解释。
- 对离群点稳健:每个误差线性计入,一个特别大的误差不会被额外放大。所以数据有离群点、或不想让个别大错主导评估时,MAE 更合适。
- 对应「拉普拉斯噪声下的最大似然」,回归树用 MAE 时叶子输出中位数(比均值抗离群)。
三、MSE:均方误差,放大大误差
MSE = (1/n) Σ (yᵢ - ŷᵢ)²
误差平方后平均。特点:
- 平方会放大大误差:误差 10 平方后是 100,误差 1 平方后是 1——大误差的「话语权」被急剧放大。所以 MSE 对离群点非常敏感,一个大错就能主导整个指标。
- 关于预测值处处可导且为凸函数,因此便于梯度优化;但复合到神经网络参数后,整体目标并不因此变成凸函数。它是很多回归模型的常用优化目标,并对应同方差独立高斯噪声假设下的最大似然。
- 缺点:单位是目标的平方(万元²),不好直观解释。
四、RMSE:均方根误差,把单位拉回来
RMSE = √MSE = √( (1/n)Σ(yᵢ-ŷᵢ)² )
对 MSE 开根号。特点:
- 单位和目标一致(万元),比 MSE 好解释,是最常用的报告指标之一。
- 仍然对离群点敏感(因为里面是平方和)。
- RMSE ≥ MAE 恒成立;两者差距越大,说明误差分布越不均匀、离群误差越多(可用 RMSE/MAE 的比值判断误差是否有大离群)。
五、MAE vs RMSE 怎么选——看离群点态度
这是高频对比:
| MAE | RMSE | |
|---|---|---|
| 对大误差 | 线性、不放大 | 平方、放大 |
| 对离群点 | 稳健 | 敏感 |
| 何时用 | 有离群点、各误差同等重要 | 大误差代价特别高、要重罚大错 |
- 希望对离群点稳健、各误差平等看待 → MAE。
- 大误差后果严重、要重点惩罚大错(如某些工程预测,偏差过大不可接受) → MSE/RMSE。
六、R²:决定系数,衡量拟合优度
前面几个是「绝对误差」,数值大小依赖目标的量纲,不好跨数据集比较。R²(决定系数) 提供一个相对、无量纲的指标:
R² = 1 - SS_res / SS_tot
SS_res = Σ(yᵢ - ŷᵢ)² 模型的残差平方和
SS_tot = Σ(yᵢ - ȳ)² 「只用均值 ȳ 预测」的平方和(基线)
含义:衡量当前样本上模型相对「用当前样本均值预测」减少了多少平方误差。只有在线性回归等相应统计假设与评估语境下,才宜谨慎使用“解释了多少变异”的表述。
- R² = 1:完美预测(残差为 0)。
- R² = 0:和「只用均值预测」一样差——模型没学到东西。
- R² < 0:比用均值还差(模型很糟)。
- 一般在
(-∞, 1],越接近 1 越好。它虽无量纲,但受测试样本范围、目标方差和基线影响,适合在同一目标、同一测试样本上比较模型,不适合跨任意数据集硬比。
注意:R² 会随特征增多而虚高(哪怕加无用特征)——用 调整 R²(Adjusted R²) 惩罚特征数量,做特征多少的公平比较。
七、MAPE 及其他
- MAPE(平均绝对百分比误差)
= (1/n)Σ|(yᵢ-ŷᵢ)/yᵢ|:以百分比衡量误差,跨量纲可比、业务上直观(「平均偏差 8%」)。但y 含 0 或接近 0 时失效/爆炸,且对低估高估不对称。 - 其他:Huber 损失(MAE 和 MSE 的折中,小误差平方、大误差线性,兼顾稳健和可导)、中位数绝对误差(更抗离群)。
MAPE 的分母是真值,因此 y=0 时未定义,|y| 很小时会被极端放大;目标含负值时,百分比误差的业务解释也常不成立。它还具有不对称性,同样绝对偏差在低真值一侧受罚更大。
| 替代指标 | 缓解点 | 新边界 |
|---|---|---|
| WAPE | 聚合后归一化 | 总真值近 0 仍有问题 |
| sMAPE | 分母含预测与真值 | 定义版本不统一 |
| MAE、RMSE | 不除以真值 | 不具百分比尺度 |
选择 MAPE 前应检查零值、负值和业务是否真正关心相对误差,不能只因直观就默认使用。
八、常见追问
- MSE 为什么对离群点敏感? 平方放大大误差,一个离群点的平方项主导指标。
- MAE 和 RMSE 差别? MAE 线性稳健、RMSE 平方敏感;RMSE≥MAE,差距大说明有离群误差。
- R² 为什么可能是负的? 模型比用均值预测还差时 SS_res>SS_tot,R²<0。
- R² 越高越好吗? 基本是,但会随特征增多虚高,比较不同特征数的模型要用调整 R²。
- 优化用哪个? 多数模型优化 MSE(可导凸);报告常用 RMSE、MAE、R²。
- MAPE 什么时候不能用? 真实值有 0 或极小值时(除法爆炸)。
九、用同一组残差比较 MAE、MSE、RMSE 与 R²
若三个残差为 [1,-1,4],则 MAE=(1+1+4)/3=2,MSE=(1+1+16)/3=6,RMSE=√6≈2.45。大误差 4 在 MAE 中贡献 4/6,在 MSE 中贡献 16/18,说明平方损失更强调尾部错误;MAE 只是相对更稳健,误差无限大时它仍会无限增长。
再设真实值 y=[1,2,3]、预测 ŷ=[1,2,4],残差平方和为 1,总平方和为 2,因此 R²=1-1/2=0.5。R² 的基线由当前评估集均值和方差决定,适合在同一目标、同一测试样本上比模型,不宜笼统说可跨任意数据集直接比较。
| 指标 | 本例数值 | 改变目标单位后的行为 |
|---|---|---|
| MAE | 2.00 | 随单位线性缩放 |
| MSE | 6.00 | 随单位平方缩放 |
| RMSE | 2.45 | 随单位线性缩放 |
| R² | 依 y 方差 | 同一数据线性缩放下不变 |
先定业务损失 → 同时报 MAE/RMSE 看误差尺度
→ 报分位数或分组误差看尾部
→ R² 只作相对均值基线补充
易错点:评估指标不是越多越专业;指标必须对应错误成本、目标尺度和部署人群。
十、常见误区与追问
- 误区:MAE 对离群点完全不受影响。 它不平方放大,但绝对误差仍无上界。
- 误区:R² 可以不加条件地跨数据集比较。 不同目标方差、样本范围和基线会改变 R² 的含义。
- 追问:常数真实值时 R² 怎么办? 总平方和为零,数学定义退化,具体库可能采用约定值。
- 追问:训练 R² 加特征为何常不降? 带截距 OLS 在同一训练集扩大特征空间不会增大残差平方和;测试 R² 没此保证。
- 追问:MAPE 为什么对接近零的目标危险? 分母很小会把有限绝对误差放成巨大比例,零值则无法计算。
十一、加强记忆
回归指标核心看错误成本、量纲和尾部风险:MAE 线性累计误差,比平方损失更稳健但并非不受离群点影响;MSE/RMSE 放大大误差,RMSE 与目标同单位;R² 相对当前评估集的均值基线,1 表示完美、0 表示未优于该基线、负值表示更差,不能跨任意数据集直接比较;MAPE 在真值为 0 时未定义,接近 0 或含负值时也难解释。实践中先按业务损失选主指标,再用 MAE/RMSE、误差分位数和切片结果共同定位风险。