← writingresearch noteMay 08, 2025 · updated Jul 18, 2026 · ZH · 4 min readEN version →

回归模型评估指标: MAE, ⁠MSE, ⁠RMSE 与 R² 详解

MAE, MSE, RMSE 与 R² 速查: 各自量什么, 什么时候用, 坑在哪, 帮你为机器学习项目选对指标.

抽象的黑白建筑曲线, 回归指标一文的题图.image · mood
— Il n’y a qu’une loi en sentiment. C’est de faire le bonheur de ce qu’on aime— 感情里只有一条法则: 让所爱的人幸福
— 司汤达, 1805 年 6 月 19 日日记

引言: 回归模型的本质

预测模型通常分两大类:

  • 回归模型: 输出连续值(比如预测房价, 气温, 股价)
  • 分类模型: 输出类别或二元结果(比如预测是/否, 垃圾邮件/正常邮件, 或给图像分类)

回归模型做的事, 是在变量之间找出关系, 用来预测连续的数值. 但一个回归模型到底好不好, 靠什么判断? 这就是评估指标的用处.

速查: 指标对比表

赶时间的话, 这张表就是全文的浓缩; 每个指标后文都有小节展开.

指标全称范围含义适用局限
MAE平均绝对误差[0, ∞)平均误差幅度通用, 对异常值稳健零点不可导
MSE均方误差[0, ∞)误差平方的平均优化对异常值敏感
RMSE均方根误差[0, ∞)原始单位下的误差易于解读对异常值敏感
决定系数(-⁠∞, 1]被解释的方差比例模型对比加特征就会涨
MAPE平均绝对百分比误差[0, ∞)百分比误差业务场景有偏, 零值处无定义
SMAPE对称平均绝对百分比误差[0, 2]对称百分比误差预测任务取值范围不直观

如何选对评估指标?

关键考量

  1. 异常值的影响有多大?

    • 想重罚异常值: MSE/RMSE
    • 不想让异常值主导评估: MAE
  2. 高估和低估, 哪个代价更高?

    • 两者同等重要: RMSE, MAE 这类对称度量
    • 某一方向代价更高: 考虑非对称度量或自定义损失函数
  3. 要相对度量还是绝对度量?

    • 跨数据集比较: R², MAPE
    • 在原始单位上解读: RMSE, MAE

一般选择原则

  • 训练时只优化一个主指标
  • 评估时看多个指标, 理解性能的不同侧面
  • 尊重领域惯例 — 有些领域有约定俗成的指标
  • 了解每个指标在你的具体场景里的局限

评估指标的理论基础

残差: 一切的基石

回归评估的一切都从残差(residual)出发 — 预测值与实际值之差:

Residual=yiy^i\text{Residual} = y_i - \hat{y}_i

其中 yiy_i 是实际值, y^i\hat{y}_i 是预测值.

偏差与误差

偏差(bias)指预测里的系统性误差. 理想情况下, 残差之和应该接近零 — 模型既不总往高了猜, 也不总往低了猜.

建模的循环

建模通常沿着“构建 → 评估 → 改进”的循环推进:

  1. 构建模型
  2. 评估模型
  3. 改进模型
  4. 重复, 直到性能令人满意

基础评估指标

平均绝对误差(MAE)

平均绝对误差量的是误差的平均大小, 不区分方向.

公式:

MAE=1ni=1nyiy^i\text{MAE} = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|

优点:

  • 解读直观: 直接代表误差的平均大小
  • 对异常值稳健: 不会放大异常值的影响
  • 保留单位: 与原始数据同量纲
  • 简单直接: 直接反映平均偏离程度

局限:

  • 误差一视同仁: 大误差和小误差按同一权重算, 不额外惩罚离谱的预测
  • 优化不便: 在零点没有导数(下框细说)
  • 依赖量纲: 不同数据集之间难以比较

均方误差(MSE)与均方根误差(RMSE)

MSE 把每个误差先平方再取平均; RMSE 在此基础上开根号, 把结果带回原始单位.

MSE 公式:

MSE=1ni=1n(yiy^i)2\text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2

RMSE 公式:

RMSE=1ni=1n(yiy^i)2\text{RMSE} = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}

优点:

  • 重罚大误差: 平方会把大误差放得更大
  • 处处可导: 梯度平滑, 优化器好收敛(对照上文 MAE 的零点问题)
  • 预测无偏: 最小化 MSE 的预测围绕均值分布

局限:

  • 对异常值敏感: 几个离群点就能把分数拖垮
  • 不易解读: MSE 不在原始单位上(RMSE 解决了这一点)
  • 量纲问题: 不同数据集之间无法直接比较

决定系数(R²)

R² 表示因变量的方差中, 能被自变量解释的比例.

公式:

R2=1RSSTSSR^2 = 1 - \frac{RSS}{TSS}

其中:

  • RSS(残差平方和): (yiy^i)2\sum(y_i - \hat{y}_i)^2
  • TSS(总平方和): (yiyˉ)2\sum(y_i - \bar{y})^2

解读:

  • 通常落在 0 到 1 之间(模型很差时可以为负)
  • 数值越高, 拟合越好(解释的方差越多)
  • R² 为 0.75, 意味着模型解释了 75% 的方差

优点:

  • 与量纲无关: 可以跨不同的目标变量比较模型
  • 百分比直观: “解释了百分之多少的方差”, 一听就懂
  • 广为接受: 统计学里的标准汇报指标

局限:

  • 加特征就只会涨(哪怕特征毫不相关)
  • 不惩罚模型复杂度(调整 R² 才会)
  • 模型假设被违反时可能误导
  • 不适合时间序列或非线性关系

进阶评估指标

百分比误差类

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

MAPE 衡量实际值与预测值之间的百分比差异.

MAPE=1ni=1nyiy^iyi×100%\text{MAPE} = \frac{1}{n}\sum_{i=1}^{n}\left|\frac{y_i - \hat{y}_i}{y_i}\right| \times 100\%

MAPE 的优点与局限:

  • 对业务友好: 用百分比说话, 容易沟通
  • 与量纲无关: 便于跨数据集比较
  • 零值问题: 实际值为零时无定义
  • 惩罚不对称: 对高估的惩罚重于低估

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

SMAPE 试图解决 MAPE 的不对称问题:

SMAPE=1ni=1nyiy^i(yi+y^i)/2×100%\text{SMAPE} = \frac{1}{n}\sum_{i=1}^{n}\left|\frac{y_i - \hat{y}_i}{(y_i + \hat{y}_i)/2}\right| \times 100\%

SMAPE 的优点:

  • 范围有界: 输出被限定在 [0%, 200%]
  • 更均衡: 对高估与低估的处理更接近对等
  • 零值处理更好: 不过两个值都为零时仍有问题

对数误差类

均方对数误差(MSLE)

MSLE 先做对数变换, 再计算平方误差:

MSLE=1ni=1n(log(yi+1)log(y^i+1))2\text{MSLE} = \frac{1}{n}\sum_{i=1}^{n}(\log(y_i + 1) - \log(\hat{y}_i + 1))^2

均方根对数误差(RMSLE):

RMSLE=MSLE\text{RMSLE} = \sqrt{\text{MSLE}}

这类指标特别适合:

  • 呈指数增长模式的数据
  • 低值区间的误差应当比高值区间罚得更重的场合
  • 取值跨度很大的数据集

信息准则

赤池信息准则(AIC)与贝叶斯信息准则(BIC)

这两个指标在拟合优度和模型复杂度之间做取舍:

AIC=2k2ln(L)\text{AIC} = 2k - 2\ln(L) BIC=ln(n)k2ln(L)\text{BIC} = \ln(n)k - 2\ln(L)

其中:

  • k 是模型参数的个数
  • L 是似然函数
  • n 是观测数

这类指标:

  • 惩罚参数更多的模型
  • 有助于防止过拟合
  • 不能跨数据集比较

结语: 最佳实践

理解回归评估指标, 是构建有效预测模型的基本功. 不同指标看到的是模型的不同侧面:

  • MAE: 想知道平均误差有多大, 用它
  • MSE/RMSE: 做优化, 或大误差要紧时, 用它
  • : 解释方差, 对比模型, 用它
  • MAPE/SMAPE: 需要用百分比说话的业务场景, 用它
  • MSLE/RMSLE: 指数型数据, 看重相对误差时, 用它

说到底, 目标从来不是把指标刷高, 而是让模型在没见过的数据上依然可靠, 真正解决你手上的问题.

参考文献

  1. A Comprehensive Overview of Regression Evaluation Metrics, NVIDIA Developer, By Eryk Lewinson
  2. James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning.
  3. Chai, T., & Draxler, R. R. (2014). Root mean square error (RMSE) or mean absolute error (MAE)?
  4. Willmott, C. J., & Matsuura, K. (2005). Advantages of the mean absolute error (MAE) over the root mean square error (RMSE).

COMMENTSvia GitHub Discussions
« J’aime les nuages… les nuages qui passent… là-bas… là-bas… les merveilleux nuages ! »

我爱云…飘过的云…在那边…在那边…那些奇妙的云!

Baudelaire, L’Étranger FR