偏差和方差
1 意义
- 偏差:
- 度量了学习算法的期望预测与真实结果的偏离程度
- 刻画了学习算法本身的拟合能力
- 方差:
- 度量了同样大小的训练集的变动所导致的学习性能的变化
- 刻画了数据扰动所造成的影响
- 噪声:
- 表达力当前任务上任何学习算法所能达到的期望泛化误差的下界
- 刻画了学习问题本身的难度
2 偏差和方差主要用于模型的选择
- 选择相对较好的模型的顺序:
- 【1】方差小,偏差小 > 【2】方差小,偏差大 > 【3】方差大,偏差小 > 【4】方差大,偏差大
3 公式推导
符号 | 意义 |
---|---|
x | 测试样本 |
D | 训练集 |
y D y_D yD | x在数据集中的标记 |
y | x的真实标记 |
f | 训练集D上学得的模型 |
f ( x ; D ) f(x;D) f(x;D) | 训练集D上学得的模型 f f f在x上的预测输出 |
f ‾ ( x ) \overline{f}(x) f(x) | 模型 f f f对x的期望预测输出 |
-
以回归任务为例
-
学习算法的期望预测:
f ‾ ( x ) = E D [ f ( x ; D ) ] \overline{f}(x) = \Epsilon_D[f(x;D)] f(x)=ED[f(x;D)]
-
使用样本数相同的不同训练集产生的方差为:
v a r ( x ) = E D [ ( f ( x ; D ) − f ‾ ( x ) ) 2 ] var(x)=\Epsilon_D[(f(x;D)-\overline{f}(x))^2] var(x)=ED[(f(x;D)−f(x))2] -
噪声:
ϵ 2 = E D [ ( y D − y ) 2 ] \epsilon^2 = \Epsilon_D[(y_D-y)^2] ϵ2=ED[(yD−y)2] -
对算法的期望泛化误差进行分解:
说明:
-
第一个红色:展开(利用E(xY)=E(x)E(Y),不相关)和常数的均值是自己本身
E D [ 2 ( f ( x ; D ) − f ‾ ( x ) ) ( f ‾ ( x ) − y D ) ] = 2 ∗ E D [ f ( x ; D ) f ‾ ( x ) − f ‾ 2 ( x ) − f ( x ; D ) y D + f ‾ ( x ) y D ] = 2 ∗ ( E D [ f ( x ; D ) f ‾ ( x ) ] − f ‾ 2 ( x ) − E D [ f ( x ; D ) y D ] + E D [ f ‾ ( x ) y D ] ) \begin{aligned} \Epsilon_D[2(f(x;D)-\overline{f}(x))(\overline{f}(x)-y_D)] &=2*\Epsilon_D[f(x;D)\overline{f}(x)-\overline{f}^2(x)-f(x;D)y_D+\overline{f}(x)y_D] \\ &=2*(\Epsilon_D[f(x;D)\overline{f}(x)]-\overline{f}^2(x)-\Epsilon_D[f(x;D)y_D]+\Epsilon_D[\overline{f}(x)y_D]) \end{aligned} ED[2(f(x;D)−f(x))(f(x)−yD)]=2∗ED[f(x;D)f(x)−f2(x)−f(x;D)yD+f(x)yD]=2∗(ED[f(x;D)f(x)]−f2(x)−ED[f(x;D)yD]+ED[f(x)yD]) -
噪声的期望为0
于是有:
E ( f ; D ) = b i a s 2 ( x ) + v a r ( x ) + ϵ 2 \Epsilon(f;D)=bias^2(x) + var(x) + \epsilon^2 E(f;D)=bias2(x)+ var(x)+ ϵ2
参考
<机器学习>_周志华