zoukankan      html  css  js  c++  java
  • 诊断偏差(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)情况下,“训练误差”较小,“交叉验证误差”较大(或者“交叉验证误差”比“训练误差”大得多(>>))
  • 相关阅读:
    堆排序
    2019晋城一中开放日
    严格次小生成树
    遥远的国度
    noip2018游记
    Luogu1736 创意吃鱼法
    P3958 奶酪
    Luogu3385 负环
    Luogu1040 加分二叉树
    Luogu1007 独木桥
  • 原文地址:https://www.cnblogs.com/qkloveslife/p/9885428.html
Copyright © 2011-2022 走看看