是的,除了 MAE、RMSE 和 MAPE,R²(决定系数,Coefficient of Determination)也是一个常用的评估指标。它用来衡量模型的预测结果与实际数据的拟合度。以下是关于 R² 的详细解释和计算方法。
4. R²(决定系数)
公式:
$R^2 = 1 - \frac{\sum_{t=1}^{T} (y_t - \hat{y}t)^2}{\sum{t=1}^{T} (y_t - \bar{y})^2}$
- 解释:
- 分子是误差平方和(Residual Sum of Squares, RSS),表示模型预测值和真实值的偏差。
- 分母是总平方和(Total Sum of Squares, TSS),表示真实值的偏差。
- $\bar{y}$ 是真实值的均值,即 $\bar{y} = \frac{1}{T} \sum_{t=1}^{T} y_t$。
含义:
-
$R^2$ 的值范围
在 [0, 1] 之间,表示模型拟合程度:
- $R^2 = 1$ 表示完美拟合(模型预测结果与真实值完全一致)。
- $R^2 = 0$ 表示模型没有解释任何变异,和用真实值的均值作为预测值一样。
- $R^2 < 0$ 表示模型的预测比简单的均值预测还要差。
直观理解:
- $R^2$ 值越高,模型拟合得越好。
- $R^2$ 实际上衡量的是模型解释了数据变异的多少部分。例如,$R^2 = 0.8$ 表示模型解释了 80% 的数据变异。
5. 代码中的实现方式
在你提供的代码中,r2_score 函数是计算 R² 的地方。它是通过以下步骤计算的:
r2_score 函数:
def r2_score(real, pred):
real_mean = np.mean(real)
ss_tot = np.sum((real - real_mean) ** 2) # 总变异量
ss_res = np.sum((real - pred) ** 2) # 残差平方和
if ss_tot < 1e-8:
return 0.0
return 1 - ss_res / ss_tot
解释:
-
计算总变异量(TSS):
TSS=∑t=1T(yt−yˉ)2\text{TSS} = \sum_{t=1}^{T} (y_t - \bar{y})^2
其中 $\bar{y}$ 是真实值的均值。
-
计算残差平方和(RSS):
RSS=∑t=1T(yt−y^t)2\text{RSS} = \sum_{t=1}^{T} (y_t - \hat{y}_t)^2
-
计算 $R^2$:
R2=1−RSSTSSR^2 = 1 - \frac{\text{RSS}}{\text{TSS}}
在代码中,这一过程通过以下两行代码完成:
ss_tot = np.sum((real - real_mean) ** 2)
ss_res = np.sum((real - pred) ** 2)
然后,最后一步计算出 R² 值:
return 1 - ss_res / ss_tot
6. 如何解读 R² 值
- R² = 1: 模型完美地拟合了数据,预测值和实际值完全一致。
- R² = 0: 模型完全无法拟合数据,与仅用均值预测的效果相同。
- R² > 0: 模型的预测比均值预测要好,但可能还存在一些偏差。
- R² < 0: 模型的表现比简单的均值模型还差。这意味着模型的预测误差大于仅使用均值作为预测值的误差。
7. R² 的优缺点
优点:
- 直观:$R^2$ 值介于 0 和 1 之间,便于理解和解释。
- 标准化:$R^2$ 是标准化的度量,不依赖于数据的量纲。
缺点:
- 不一定能揭示实际的预测能力:$R^2$ 有时可能会过高,尤其是在过拟合的情况下,即使模型对训练数据表现很好,但对未知数据却不准确。
- 对异常值敏感:大误差(尤其是异常值)可能会严重影响 $R^2$ 的值。
- 无法评估模型的偏差:即使 $R^2$ 很高,也不能完全说明模型的预测值和真实值的偏差程度。
8. R² 和其他指标的关系
- MAE, RMSE, MAPE 都是直接评估误差的指标,关注的是预测的准确性,而 R² 更多的是评估模型对数据变异的解释能力。
- R² 提供了一个模型如何拟合数据的全局视图,而其他指标则给出了更加细化的局部误差信息。
小结
**R²(决定系数)**是评估回归模型拟合程度的重要指标,表示模型预测值与实际值之间的关系程度。它的计算基于总变异量和残差平方和,反映了模型对数据变异的解释能力。
- 公式: $R^2 = 1 - \frac{\text{RSS}}{\text{TSS}}$
- 直观: R² 越接近 1,表示模型对数据的拟合程度越高。
- 代码: 通过计算残差平方和(RSS)与总变异量(TSS)的比率来得到 R² 值。
这个指标通常与 MAE, RMSE 和 MAPE 一起使用,以全面评估模型的预测性能。