**均方根误差(RMSE)**回答「预测误差有多大」,用目标变量的原单位表示。**决定系数(R²)**回答「模型比均值基准好多少」,比较模型和均值基准各自的平方误差;模型更差时,R² 就是负数。

每套房都高估 10 万元,R² 为什么不同?

下面两组是教学数据。每组的真实均价都是 100 万元,模型对每套房都高估 10 万元,因此两组的 RMSE 都是 10 万元。

评价样本真实房价(万元)模型预测(万元)均值基准的平方误差和(万元的平方)R²
A:房价较分散50、100、15060、110、1605,0000.94
B:房价较集中90、100、110100、110、120200−0.50

模型在两组的平方误差和都是 。在 A 组,每套都预测为 100 万元时,有两套各错 50 万元,模型将平方误差和从 5,000 降到 300。在 B 组,预测均价时只有两套各错 10 万元,平方误差和是 200,比模型还低。同样错 10 万元,能否超过均值基准,要看这组房价本身有多分散。

两个指标都基于平方误差和

设 为评价样本数, 为第 个样本的真实值, 为模型预测, 为评价集真实值的均值。 是模型预测的平方误差和, 是把所有样本都预测为 时的平方误差和。定义见 scikit-learn 回归指标指南。(scikit-learn developers, n.d.)

  • **读 RMSE:**先平方、求平均,再开根号,结果回到目标变量的原单位。单条误差翻倍,它对平方误差和的贡献变为四倍。要看每条误差取绝对值后的算术平均值,可以报告平均绝对误差(MAE)。
  • 读 R²:它没有单位。 表示预测完全正确, 表示平方误差和与均值基准相同, 表示模型的平方误差和更大。 意味着模型的平方误差和比基准少 80%。拟合分析常把这个比例称为「解释的变异」,这里的「解释」指统计拟合。在测试集上报告时,直接说「相对于均值基准的平方误差改善」更明确。

什么时候,两者给出的模型排序相同?

把 代入 R²,得到:

对同一组真实值非恒定的样本做单目标、无权重评价时, 和 对所有模型都是固定的。RMSE 较小的模型,R² 必然较大;RMSE 相同,R² 也相同。两个指标提供不同的读法,但给出的模型排序完全一致。若先分折计算指标,再对各折的分数求平均,这个排序关系未必保留。

换一批样本, 也可能变。目标波动越大,同样的 RMSE 对应的 R² 越高;同样的 R² 也能对应不同大小的 RMSE。跨数据比较时,RMSE 要看单位和评价样本是否可比,R² 要看目标波动、样本构成和评价设置是否可比。

实际评估时注意什么?

  • **另外评估实际可用的基准。**标准 R² 使用评价集真实值的均值作为统计参照,这个均值是事后算出来的。想判断模型是否胜过预测时可用的策略,可以用训练集均值或现有的朴素预测方法,在同一测试集上计算误差。DummyRegressor 的均值策略使用的就是训练集均值。
  • **用独立数据评价泛化。**在同一组训练样本上,给带截距的普通最小二乘模型增加自变量,训练 R² 不会下降:新增系数设为零,原模型的拟合结果仍然可达到。评估预测表现时,在留出的测试集上报告 RMSE 和 R²,再按任务需要补充 MAE 或超过业务误差阈值的比例。(Hyndman & Athanasopoulos, 2021)
  • **区分 R² 和相关系数平方。**带截距的普通最小二乘回归,在拟合用的同一批样本上,若真实值和拟合值都非恒定,就有 ,多元回归也成立。只有一个自变量 时,只要 和 均非恒定,还可写成 。评价测试集预测时,直接按 R² 的定义计算:上例 B 组的预测值与真实值只差一个常数,Pearson 相关系数为 1,R² 却是 −0.50。教材的拟合优度小节
  • **真实值全相同,单独看误差。**此时 ,标准 R² 没有有限结果,RMSE 和 MAE 仍可计算。对于至少两个样本,scikit-learn 的 r2_score 默认把恒定目标上的完全正确预测记为 1,其余预测记为 0。这两个返回值来自软件的处理约定。

延伸阅读:岭回归:监督学习中的正则化线性模型,了解怎样用验证误差选择正则化强度。

参考文献

Hyndman, R. J., & Athanasopoulos, G. (2021). Forecasting: Principles and practice (3rd ed.). OTexts. https://otexts.com/fpp3/
scikit-learn developers. (n.d.). Metrics and scoring: Quantifying the quality of predictions — Regression metrics. scikit-learn. Retrieved November 8, 2026, from https://scikit-learn.org/stable/modules/model_evaluation.html#regression-metrics