— Il n’y a qu’une loi en sentiment. C’est de faire le bonheur de ce qu’on aime— 感情里只有一条法则: 让所爱的人幸福
引言: 回归模型的本质
预测模型通常分两大类:
- 回归模型: 输出连续值(比如预测房价, 气温, 股价)
- 分类模型: 输出类别或二元结果(比如预测是/否, 垃圾邮件/正常邮件, 或给图像分类)
回归模型做的事, 是在变量之间找出关系, 用来预测连续的数值. 但一个回归模型到底好不好, 靠什么判断? 这就是评估指标的用处.
速查: 指标对比表
赶时间的话, 这张表就是全文的浓缩; 每个指标后文都有小节展开.
| 指标 | 全称 | 范围 | 含义 | 适用 | 局限 |
|---|---|---|---|---|---|
| MAE | 平均绝对误差 | [0, ∞) | 平均误差幅度 | 通用, 对异常值稳健 | 零点不可导 |
| MSE | 均方误差 | [0, ∞) | 误差平方的平均 | 优化 | 对异常值敏感 |
| RMSE | 均方根误差 | [0, ∞) | 原始单位下的误差 | 易于解读 | 对异常值敏感 |
| R² | 决定系数 | (-∞, 1] | 被解释的方差比例 | 模型对比 | 加特征就会涨 |
| MAPE | 平均绝对百分比误差 | [0, ∞) | 百分比误差 | 业务场景 | 有偏, 零值处无定义 |
| SMAPE | 对称平均绝对百分比误差 | [0, 2] | 对称百分比误差 | 预测任务 | 取值范围不直观 |
如何选对评估指标?
关键考量
-
异常值的影响有多大?
- 想重罚异常值: MSE/RMSE
- 不想让异常值主导评估: MAE
-
高估和低估, 哪个代价更高?
- 两者同等重要: RMSE, MAE 这类对称度量
- 某一方向代价更高: 考虑非对称度量或自定义损失函数
-
要相对度量还是绝对度量?
- 跨数据集比较: R², MAPE
- 在原始单位上解读: RMSE, MAE
一般选择原则
- 训练时只优化一个主指标
- 评估时看多个指标, 理解性能的不同侧面
- 尊重领域惯例 — 有些领域有约定俗成的指标
- 了解每个指标在你的具体场景里的局限
评估指标的理论基础
残差: 一切的基石
回归评估的一切都从残差(residual)出发 — 预测值与实际值之差:
其中 是实际值, 是预测值.
偏差与误差
偏差(bias)指预测里的系统性误差. 理想情况下, 残差之和应该接近零 — 模型既不总往高了猜, 也不总往低了猜.
建模的循环
建模通常沿着“构建 → 评估 → 改进”的循环推进:
- 构建模型
- 评估模型
- 改进模型
- 重复, 直到性能令人满意
基础评估指标
平均绝对误差(MAE)
平均绝对误差量的是误差的平均大小, 不区分方向.
公式:
优点:
- 解读直观: 直接代表误差的平均大小
- 对异常值稳健: 不会放大异常值的影响
- 保留单位: 与原始数据同量纲
- 简单直接: 直接反映平均偏离程度
局限:
- 误差一视同仁: 大误差和小误差按同一权重算, 不额外惩罚离谱的预测
- 优化不便: 在零点没有导数(下框细说)
- 依赖量纲: 不同数据集之间难以比较
均方误差(MSE)与均方根误差(RMSE)
MSE 把每个误差先平方再取平均; RMSE 在此基础上开根号, 把结果带回原始单位.
MSE 公式:
RMSE 公式:
优点:
- 重罚大误差: 平方会把大误差放得更大
- 处处可导: 梯度平滑, 优化器好收敛(对照上文 MAE 的零点问题)
- 预测无偏: 最小化 MSE 的预测围绕均值分布
局限:
- 对异常值敏感: 几个离群点就能把分数拖垮
- 不易解读: MSE 不在原始单位上(RMSE 解决了这一点)
- 量纲问题: 不同数据集之间无法直接比较
决定系数(R²)
R² 表示因变量的方差中, 能被自变量解释的比例.
公式:
其中:
- RSS(残差平方和):
- TSS(总平方和):
解读:
- 通常落在 0 到 1 之间(模型很差时可以为负)
- 数值越高, 拟合越好(解释的方差越多)
- R² 为 0.75, 意味着模型解释了 75% 的方差
优点:
- 与量纲无关: 可以跨不同的目标变量比较模型
- 百分比直观: “解释了百分之多少的方差”, 一听就懂
- 广为接受: 统计学里的标准汇报指标
局限:
- 加特征就只会涨(哪怕特征毫不相关)
- 不惩罚模型复杂度(调整 R² 才会)
- 模型假设被违反时可能误导
- 不适合时间序列或非线性关系
进阶评估指标
百分比误差类
平均绝对百分比误差(MAPE)
MAPE 衡量实际值与预测值之间的百分比差异.
MAPE 的优点与局限:
- 对业务友好: 用百分比说话, 容易沟通
- 与量纲无关: 便于跨数据集比较
- 零值问题: 实际值为零时无定义
- 惩罚不对称: 对高估的惩罚重于低估
对称平均绝对百分比误差(SMAPE)
SMAPE 试图解决 MAPE 的不对称问题:
SMAPE 的优点:
- 范围有界: 输出被限定在 [0%, 200%]
- 更均衡: 对高估与低估的处理更接近对等
- 零值处理更好: 不过两个值都为零时仍有问题
对数误差类
均方对数误差(MSLE)
MSLE 先做对数变换, 再计算平方误差:
均方根对数误差(RMSLE):
这类指标特别适合:
- 呈指数增长模式的数据
- 低值区间的误差应当比高值区间罚得更重的场合
- 取值跨度很大的数据集
信息准则
赤池信息准则(AIC)与贝叶斯信息准则(BIC)
这两个指标在拟合优度和模型复杂度之间做取舍:
其中:
- k 是模型参数的个数
- L 是似然函数
- n 是观测数
这类指标:
- 惩罚参数更多的模型
- 有助于防止过拟合
- 不能跨数据集比较
结语: 最佳实践
理解回归评估指标, 是构建有效预测模型的基本功. 不同指标看到的是模型的不同侧面:
- MAE: 想知道平均误差有多大, 用它
- MSE/RMSE: 做优化, 或大误差要紧时, 用它
- R²: 解释方差, 对比模型, 用它
- MAPE/SMAPE: 需要用百分比说话的业务场景, 用它
- MSLE/RMSLE: 指数型数据, 看重相对误差时, 用它
说到底, 目标从来不是把指标刷高, 而是让模型在没见过的数据上依然可靠, 真正解决你手上的问题.
参考文献
- A Comprehensive Overview of Regression Evaluation Metrics, NVIDIA Developer, By Eryk Lewinson
- James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning.
- Chai, T., & Draxler, R. R. (2014). Root mean square error (RMSE) or mean absolute error (MAE)?
- Willmott, C. J., & Matsuura, K. (2005). Advantages of the mean absolute error (MAE) over the root mean square error (RMSE).
FILED UNDER
COMMENTSvia GitHub Discussions
