方差-偏差分解

偏差-方差分析是(bias-variance decomposition)是解释算法学习泛化性能的一种重要工具。我们知道,算法在不同训练集上得到的结果可能不同。
对测试样本x, 不同的训练集为,y为x的真实标记,由于噪声或者类似于测量误差的东西,可能训练集中的,事实上我们不知道真实的y,但是我们假定噪声期望为0, 即, 我们可以用来表示真实的y。记在训练集D上x的预测输出为.

泛化误差分解

如上所示,是f(x;D)的期望,y是的期望。
方差var定义为,即在不同的数据集上的离散程度。
偏差bias定义为, 这个值与D无关,因此不需要用期望形式来呈现。
噪声定义为, 噪声引起的偏差记为

我们常用来描述泛化误差,从图中很容易看出,

将三部分差分别用a,b,c来表示,由于,

将这个式子两边用算子进行计算,右边的可以分配算子。
由于是常数,与按照定义都为0,显然ab和bc项都为0。
比较难办的是, 但是好在按照常理分析,噪声与学习算法应该是独立的,因此
,
于是,我们有:

即:
泛化误差可分解为方差、偏差的平方、噪声的方差的和。
为了描述的简洁性,我们可以说,泛化误差分解为方差、偏差、噪声三部分。

本文内容出自清华大学出版社的周志华著的《机器学习》(俗称西瓜书)第44-45页的2.5章节“偏差与方差”。将其中的公式转化为更容易理解的图形。书中这段文字有几个不影响阅读和理解的歧义描述:
1、第二段第三行,为x在数据集中的标记。疑改为“训练集D上”更合理。
2、公式2.39对噪声的定义与后续的“假定噪声期望为0”矛盾。疑改为噪声方差合理。
3、公式2.40对偏差的定义括号中没有平方,而公式2.42的解释中的偏差显然是有平方的。
书中公式2.41的第四行这一项为0,在左侧有解释为独立性,中间的逻辑不太直观。

你可能感兴趣的:(方差-偏差分解)