回归模型有哪些评估指标?MAE、MSE、RMSE、R² 怎么选?
简化版
回归预测连续值,常用指标:MAE(平均绝对误差)= 误差绝对值的平均,单位和目标一致、易解释、对离群点稳健;MSE(均方误差)= 误差平方的平均,平方会放大大误差、对离群点敏感,是很多模型的优化目标;RMSE(均方根误差)= √MSE,把单位拉回和目标一致、便于解释,同样对离群点敏感;R²(决定系数)= 1 − 残差平方和/总平方和,衡量「模型比『只用均值预测』好多少」,取值一般 (-∞, 1],越接近 1 越好、0 表示和瞎猜均值一样。选择:要稳健抗离群用 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 对离群点非常敏感,一个大错就能主导整个指标。
- 数学性质好(处处可导、凸),是很多模型的优化目标(线性回归、神经网络回归默认最小化 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 = √MSE(单位拉回目标、常用报告、仍对离群敏感,且 RMSE≥MAE,差距大=有离群误差);R² = 1 − 残差平方和/均值基线平方和(拟合优度,1 完美、0 等于用均值、<0 更差,无量纲可比,但随特征增多虚高、用调整 R²);MAPE 是百分比误差(直观可比但 y 含 0 失效)。选择:抗离群用 MAE、重罚大误差用 MSE/RMSE、看拟合优度和跨数据比较用 R²。