Bias-variance decomposition是机器学习与高维统计中一个比较基本的数学公式,我最早的时候在看ISLR时看到过:
最近在学习高维统计的时候又看到了,之前上课的时候自己尝试推过这个公式,但是总是觉得陌生,这次学习了以后又尝试自己推了一次,总算是熟记于心了,所以也把过程详细地写下来!对这个公式推导比较了解的读者可以不用往下读了!
首先,假设以下模型:
这一模型是一个十分universal的模型,y为真值,epsilon为噪音,yobs为我们观察到的数据值。在机器学习和以预测为目的的统计学习中,我们希望通过以下方式来预测真值y:
也就是说,f(x)为我们拟合的模型,我们将通过其输出的预测值来预测真值y。当我们对具体的模型进行评估时,我们可以用以下度量方式:
它是指预测值与真值差值平方的期望值,或者说预测值与真值差值平方和的平均值。这个值具有什么特点呢?我们首先可以对其进行一个简单的数学操作如下:
我们减去了一个E[y_hat],又加回了一个E[y_hat]。注意,y_hat在这里是一个随机变量,而E[y_hat]代表了模型估计的期望值,它和我们在讨论某个估计量是否无偏时,估计量的期望值是一个道理(详情见《》)。对于上式,我们可以将括号中的前两项视作一个整体,后两项视作一个整体,通过完全平方得到下式:
由于期望的线性计算法则(Linearity),我们可以将其分解为:
我们将目光聚焦于第三项,在这一项中,第一个括号内的y是真值,是固定值(constant),E[y_hat]也为固定值,所以我们可以将其从期望中提出,获得如下式:
接下来通过期望的线性计算法则,我们计算出该项为0:
因此,我们可以将预测值与真值差值平方的期望值用前两项表示:
其中第一项由于是常数,所以我们可以将原先带有的期望符号去掉。注意,第一项的括号内代表的实际上是模型估计的Bias,当Bias=0时(比如Ordinary least squares estimator),第一项Bias的平方即为0;第二项实际上是y_hat的方差(y_hat与其期望值差值的平方的期望)。
简而言之,我们预测模型真值的误差,主要由两项决定,一是模型估计值的Bias,二是模型估计值的Variance。要想提高模型的预测表现,我们就必须尽量减小二者。在具体实践中,我们经常面临“鱼和熊掌不可得兼”的情况,所以要进行Bias-variance trade-off,寻找最优的模型!