zoukankan      html  css  js  c++  java
  • 【Hazard of Overfitting】林轩田机器学习基石

    首先明确了什么是Overfitting

    随后,用开车的例子给出了Overfitting的出现原因

    出现原因有三个:

    (1)dvc太高,模型过于复杂(开车开太快)

    (2)data中噪声太大(路面太颠簸)

    (3)数据量N太小(知道的路线太少)

    这里(1)是前提,模型太复杂:

    (1)模型越复杂,就会捕获train data中越多的点(这当中当然包括更多的噪声点)

    (2)数据量N太小,根据VC Dimension理论,Eout会增大

    这里的noise包括两类:

    1. stochoastic noise:

      比如train data就是“10次多项式+正态分布的误差”产生的;如果样本量N不是很大的话,noise带来的影响很可能不能被互相抵消(抵消的意思是+noise, -noise在算error的时候有抵消的作用),这样每个noise就会非常影响曲线的形状;结果就是带来overfitting

    2. deterministic noise:

      比如train data是“50次多项式”产生的;即使没有stochastic noise,无论怎么用10次多项式去拟合也无法拟合出50次多项式;

      但是这个时候,由于10次多项式的power比较强,它回去够到尽量多的点,这些点当中难免有些就等于noise了;

      反之,如果用2次多项式去拟合,由于它的power比较弱,在它正常范围内能够到的点比较少,因此train data中的数据点起到stochastic noise的机会就大大减少了

    最终的造成的结果,就是如下的两张图了。

    如上图,总结了overfitting的四种reasons。

    最后,引出了对抗overfitting的几种途径:

    最关键的是:一开始尽量从simple model开始尝试

    其次再是对train data的各种清洗过滤。

    另外,regularization和validation是两种比较重要的防止overfitting的途径。后面有可能重点介绍。

  • 相关阅读:
    Velocity(7)——#foreach指令
    如何修改Struts2 FiledError样式
    Mysql:User does not have access to metadata required to determine stored procedure parameter types.
    Velocity(8)——引入指令和#Stop指令
    GUI设计禁忌 之一 ——使用了错误的控件
    GUI设计禁忌——基本原则
    Velocity(9)——宏
    CentOS NFS配置
    Velocity(10)——指令的转义
    从HTML到SSI框架
  • 原文地址:https://www.cnblogs.com/xbf9xbf/p/4606226.html
Copyright © 2011-2022 走看看