诊断偏差(bias)和方差(variance)

以下两个图是比较熟悉的高偏差(high bias)与高方差(high variance)的图

[{h_ heta }left( x ight) = { heta _0} + { heta _1}x]

[{h_ heta }left( x ight) = { heta _0} + { heta _1}x + { heta _2}{x^2} + { heta _3}{x^3} + { heta _4}{x^4}]

接下来画“误差”(error)图

训练误差:

[{J_{train}}left( heta  ight) = frac{1}{{2m}}sumlimits_{i = 1}^m {{{left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)}^2}} ]

交叉验证误差:

[{J_{CV}}left( heta  ight) = frac{1}{{2m}}sumlimits_{i = 1}^m {{{left( {{h_ heta }left( {x_{CV}^{left( i ight)}} ight) - y_{CV}^{left( i ight)}} ight)}^2}} ]


多项式的度(补充概念)

定义如下

[egin{array}{l}
{h_ heta }left( x ight) = { heta _0} + { heta _1}x\
{h_ heta }left( x ight) = { heta _0} + { heta _1}x + { heta _2}{x^2}\
.\
.\
.\
{h_ heta }left( x ight) = { heta _0} + { heta _1}x + ... + { heta _{10}}{x^{10}}
end{array}]

多项式的度从d=1到d=10(主要是方便理解,意在表达多项式越来越复杂,越来越适应训练数据)


从图中可以看出(也比较容易理解)随着多项式度的增加,训练误差在逐渐变小,因为“假设函数(多项式)”正在越来越适应训练集;而交叉验证误差先减小然后增大。因为刚开始“假设函数”处于“underfit”的情况,这时模型对训练集和交叉验证集的适应性都不好。随着度的增大,模型越来越接近“just right”状态,这时,交叉验证误差达到最小值。当度再继续增大时,模型就会对训练数据产生“voerfit”现象,这样交叉验证集的误差就会升高。

 总结

  • 在“高偏差”(high bias)情况下,“训练误差”和“交叉验证误差”都很大
  • 在“高方差”(high variance)情况下,“训练误差”较小,“交叉验证误差”较大(或者“交叉验证误差”比“训练误差”大得多(>>))
原文地址:https://www.cnblogs.com/qkloveslife/p/9885428.html