• 诊断偏差(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)情况下,“训练误差”较小,“交叉验证误差”较大(或者“交叉验证误差”比“训练误差”大得多(>>))
  • 相关阅读:
    2015.07.20MapReducer源码解析(笔记)
    Hive(笔记)
    HDFS入门(1)
    Zookepper(2015.08.16笔记)
    USB_ModeSwitch 介绍(转)
    Perl 模块 Getopt::Std 和 Getopt::Long
    在linux下设置开机自动启动程序的方法
    gcc Makefile 入门
    Linuxexec函数族及system函数
    signal(SIGHUP, SIG_IGN)的含义
  • 原文地址:https://www.cnblogs.com/qkloveslife/p/9885428.html
Copyright © 2020-2023  润新知