背景
拟合优度,通常也称判定系数,记作$R^2$,是用于评估线性模型拟合优劣的指标。具体地,我们有$n$个$d$维样本组成的数据集$X\in\mathbb{R}^{n\times (d+1)}, \boldsymbol{y}\in\mathbb{R}^n$,由线性模型
其中,$\boldsymbol{w}\in\mathbb{R}^{d+1}$,$\displaystyle X = \begin{bmatrix} 1 & x_{11} & x_{12} &\cdots& x_{1d} \\ 1 & x_{21} & x_{22} & \cdots & x_{2d} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{nd} \end{bmatrix} \in \mathbb{R}^{n\times (d+1)} , \boldsymbol{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} $.
$R^2$与SST、SSE和SSR
记标签向量的均值组成新的向量$\bar{\boldsymbol{y}}$,该向量的每一个分量均为$\bar{y} = \displaystyle \frac{1}{n}\sum_{i=1}^n y_i$.
接下来介绍三个重要概念。
SST(Sum of Squares Total,总离差平方和)
SSE(Sum of Squared Errors,残差平方和)
SSR(Sum of Squares Regression,回归平方和)
于是,拟合优度定义为
注意到在线性回归模型中,如下等式成立
于是拟合优度也可以定义为
由此可见,线性模型下,拟合优度$R^2$取值范围为$[0,1]$.
证明SST=SSE+SSR
先整理SST:
再整理SSE+SSR:
故有
下面证明$(\hat{\boldsymbol{y}} - \bar{\boldsymbol{y}})^T(\boldsymbol{y} - \hat{\boldsymbol{y}})=0$.
要证明上式,我们需要回到线性回归模型求解最优参数的问题中:
对目标函数求导数得
为求得最优参数$\boldsymbol{w}_*$,令上式为0,得
由$\hat{\boldsymbol{y}} = X\boldsymbol{w}_*$,重写为
上述等式非常关键。首先,等式两边同时乘以$\boldsymbol{w}^T$得
其次,对于$X^T$中的首行$X^T_{1,:}=[1,1,\dots,1] = \boldsymbol{1}^T$,有
于是我们得到:
证毕.
后记
有时候跑实验会发现,拟合优度$R^2$为负值,这和上面的理论推导矛盾了。注意,等式$SST=SSE+SSR$成立的重要前提是模型为线性的(线性回归模型),此时,$R^2$的两个定义才都成立,其取值范围才是$[0,1]$;否则,该等式不成立,其取值范围也不再是$[0, 1]$。若模型为非线性模型(如高度非线性的神经网络),使用$R^2$作为评估指标很有可能出现负值,也失去了评估意义。