机器学习-一篇入门

【概念】一篇入门之-什么是过拟合

作者 : 老饼 发表日期 : 2022-06-26 03:53:52 更新日期 : 2024-11-21 21:24:13
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



过拟合是机器学习中最常遇到的问题,它往往表现为模型的训练效果很好但预测效果差

本文讲解什么叫过拟合,过拟合时的表现是什么,过拟合是如何产生的,以及如何预防过拟合




    01. 什么是过拟合      



本节通过讲解过拟合是什么,过拟合的表现是什么




     什么是过拟合    


过拟合(Overfitting)也称为泛化能力差,它是机器学习中的一种常见现象
过拟合是指在由于模型过度拟合训练数据,导致模型远远偏离X与y的真实关系
 过拟合的直观表现为:
 模型过拟合的表现
1. 数据表现:模型的训练误差虽然很小,但测试误差很高,泛化能力差          
 2. 几何表现:模型曲线虽然拟合了训练样本点,但曲线整体扭曲、跌宕、异常 





    两个常见的过拟合例子   


回归问题(曲线拟合)中的过拟合
 
曲线拟合中的过拟合现象
   图二中的曲线虽然在每一个训练数据上拟合得都非常好,但曲线已经偏离了正常形态
   图一中的曲线虽然有部分数据点没有拟合到位,但它却表现出数据所应有的真实形态
分类问题(模式识别)中的过拟合
 
分类问题中的过拟合现象
   图二中的曲线虽然能准确区分出每一个样本的类别,但曲线表现得非常"扭曲、勉强"
   图一中的曲线虽然有部分数据点没有完全预测准确,但它却更加"自然、真实、合理"
  可以看到,过拟合时,模型虽然在训练数据上达到更好的效果,
但这种"更好的效果"是通过"勉强而为之"换取而来的,它在模型真实应用时有害无益






     02. 过拟合的产生与预防     




本节展示一个曲线拟合中出现过拟合的实验例子,用于理解过拟合是如何产生的





      过拟合是如何产生的      


下面通过一个例子,展示强行拟合历史数据是如何引起过拟合的
现有数据点如下: 
 
过拟合例子-数据
 不妨采用三次多项式对上述数据点进行拟合,效果如下:
 
过拟合例子-正常拟合
可以看到,三次多项式效果上已经不错,基本已经把数据的形态拟合到位
 如果觉得三次多项式的拟合值还有些误差,不尽人意
 还可以强行用拉格朗日插值法对样本进行0误差10次多项式插值拟合,如下:
 
过拟合是如何产生的
 
虽然曲线对数据的拟合误差为0,但它却不是我们想要的曲线,因为曲线非常跌宕!
 即使它精确地穿过每一个训练数据点,但对于非训练数据的预测效果远不如3次多项式!
  这就是过拟合,也称为泛化能力差,往往就是为了强行拟合历史数据样本而引起的
✍️为什么不能过份拟合历史样本数据
 
不能过分拟合历史样本数据,主要是因为历史数据往往不是100%正确的,往往包含了噪声 
 在上述例子样本点(-0.6,-1.2) 处,仔细观察数据趋势会发现这极可能是采集时出现了错误
  10次多项式过于追求拟合,反而把错误样本的错误也完美重现了,进一步影响了模型整体形态
  反观3次多项式,它兼顾整体平滑,不过分追求拟合所有样本,于是成功忽略了这个错误样本
 
因此,过度学习训练样本,会严重受样本噪声影响,导致模型过度偏离真实关系




     预防过拟合的措施    


一些常见的预防过拟合的措施如下:
1. 增加训练数据量                                                                                          
 更多的样本有利于模型捕捉真实关系,同时也可以减少噪声样本带来的影响
 
2. 降低模型复杂度‌                                                                                           
     
降低模型的复杂度,也就是削弱模型的拟合能力,是一种常用的预防过拟合措施
过强的拟合能力会赋予模型学习噪声的能力,因此更容易过拟合         
合理削弱模型拟合能力,限制模型形态,更利于模型找到真实关系      
  备注:减少模型参数、减少入模变量都是降低模型复杂度的一种措施      

 3.‌ 使用正则化方法                                                                                           
 正则化一般是指在损失函数加入正则项,例如L1、L2正则项              
   通过正则化,预防模型训练出一些不合理的系数,从而使模型更偏向真实关系

 4. 早停法(Early Stopping)                                                                         
 早停法是指在训练过程中,使用验证数据来检查模型是否过拟合          
如果验证数据的误差越来越大,则说明模型走向了过拟合,则提前停止训练
更多预防过拟合的方法见《
如何预防过拟合






好了,机器学习中的过拟合就介绍到这里了







 End 





联系老饼