回归 · Regression

回归:误差有多大,比猜平均数好多少

预测的是一个连续的数(房价、温度、销量)时,没有「判对判错」,只有「差了多少」。下面五个指标从不同角度把每一行的残差汇总成一个数。

输入数据 INPUT

可以从表格复制两列直接粘贴;第一行是表头会自动跳过。

预测值 vs 真实值

样本8
-1.01-1.011.371.373.753.756.136.138.518.51真实值 y预测值 ŷ
虚线是 y = x,点落在线上表示预测完全准确;每个点到虚线的竖线就是这一行的残差。
01

指标卡

均值 ȳ = 3.6625。R² 的分母 Σ(yᵢ − ȳ)² 就是「一直猜 ȳ」时的误差平方和。

R-01

平均绝对误差 MAE

0.4750

平均每个样本差多少,单位与目标值相同

公式
Σ|yᵢ − ŷᵢ| / n
代入
= 3.8 / 8 = 0.4750
R-02

均方误差 MSE

0.3000

误差平方的平均,大误差被放大

公式
Σ(yᵢ − ŷᵢ)² / n
代入
= 2.4 / 8 = 0.3000
R-03

均方根误差 RMSE

0.5477

把 MSE 开方回到原单位,比 MAE 更在意大误差

公式
√MSE
代入
= √0.3 = 0.5477
R-04

平均绝对百分比误差 MAPE

23.3874%

平均差了真实值的百分之几(单位:%)

公式
(100% / m) · Σ|(yᵢ − ŷᵢ) / yᵢ|,只算 yᵢ ≠ 0 的 m 个样本
代入
= 100% / 8 × Σ|相对误差| = 23.3874%
R-05

决定系数

0.9476

比「永远猜平均值」好多少;1 为完美,可以为负

公式
1 − Σ(yᵢ − ŷᵢ)² / Σ(yᵢ − ȳ)²
代入
= 1 − 2.4 / 45.75875 = 0.9476
02

逐行残差

#真实 y预测 ŷ残差 y − ŷ|残差|残差²|相对误差|
132.50.50.50.2516.666667%
2-0.50-0.50.50.25100%
3220000%
478-11114.285714%
54.23.90.30.30.097.142857%
65.56.1-0.60.60.3610.909091%
71.81.20.60.60.3633.333333%
86.360.30.30.094.761905%
03

几个指标的差别

MAE 与 RMSE

两者单位都和目标值相同。RMSE 先平方再开方,一个特别大的误差会把它拉高很多;MAE 对每个误差一视同仁。两者差得越多,说明误差里有几个特别大的。RMSE 永远不小于 MAE。

MSE

单位是目标值的平方,不好直接解读,但数学上好处理,很多模型训练时最小化的就是它。看数值时一般开方成 RMSE。

MAPE 的两个坑

真实值为 0 时没法除,本站跳过这些行;真实值很接近 0 时,很小的误差也会变成巨大的百分比。另外它对「预测偏高」和「预测偏低」的惩罚不对称。

R² 可以是负数

R² = 1 表示全部预测准确,R² = 0 表示和一直猜平均数一样,负数表示还不如猜平均数。它是在同一份数据上相对比较的量,换一份数据不能直接比。