• 【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的途径。后面有可能重点介绍。

  • 相关阅读:
    THINKPHP增删改查--(改)
    thinkphp中各字母代表的发放和具体实例
    PHP时间戳和日期互转换
    jquery方法大全
    Bootstrap里的文件分别表示什么?都有什么用?
    文本一处隐藏显示
    点击下拉,其余不动的jquery事件(转)
    JQuery中$.ajax()方法参数详解
    数据库联合查询输出数量
    如何使div居中
  • 原文地址:https://www.cnblogs.com/xbf9xbf/p/4606226.html
Copyright © 2020-2023  润新知