overfitting

博客围绕机器学习的泛化能力展开,重点探讨了过拟合问题。分析了过拟合的成因,如数据量少、模型复杂度高、目标函数复杂等。同时给出了解决过拟合的方法,包括避免VC维度过大、减少噪声影响、增加数据量、使用正则化和验证等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习的效果如何得看他的泛化能力咋样,学的不咋的,又可以分为:underfitting,即在看过的数据集上就没有做好,这时候可以增加hypothesis 模型复杂度,通过feature transform增加dvc。overfitting,即在看多的训练集上表现的很好,计算的hypothesis完全符合看过的数据点,但是Eout不好。与underfitting不同,overfitting的成因很多,因此可使用改进的方法也很多!
在这里插入图片描述
一、overfitting 成因
先来看一个奇怪的现象:即便目标函数是高阶的,使用一个高阶的hypothesis学习效果却不如低阶hypothesis,这里的原因是数据点太少了,无法刻画出真实的hypothesis变化。数据集不够大,低阶的hypothesis反而更好!
在这里插入图片描述
在这里插入图片描述
假设数据通过目标函数和噪声产生,考虑噪声、目标函数复杂性、数据集大小对泛化能力影响:在这里插入图片描述
选取二阶和十阶的hypothesis,先判断数据集大小和噪声强弱对泛化能力的影响,已知目标函数为20阶,衡量标准为10阶多项式和2阶多项式误差差值:
在这里插入图片描述
在这里插入图片描述
判断目标函数的复杂度(样本数据跳跃性更大仿佛有噪声干扰)和数据集大小对泛化能力影响,这里的衡量标准依旧是标准为10阶多项式和2阶多项式误差差值:在最下面,此时目标函数的复杂性不高,但是使用10阶多项式易产生过拟合,与上面的分析类似,当数据量少,目标函数复杂度高时,均易产生过拟合:
在这里插入图片描述
在这里插入图片描述
总结来说:数据量少,采取hypothesis模型复杂度过高,目标函数很复杂时,均易产生过拟合!

在这里插入图片描述
deterministic Noise是最优hypothesis和target function之间的差距(图中灰色部分),determinstic Noise 总是存在的,因为hypothesis 不可能完美的拟合target function。为了缩小deterministic,当我们得知target不是那么复杂时,选用的hypothesis 也应该尽可能简单。
在这里插入图片描述

二、如何解决overfitting
避免hypothesis set的vc dimension过大,那么从简单的hypothesis set开始做起!
避免Noise 的影响,对应就有data cleaning(修正错误数据点) 或是data pruning (剔除错误数据点)!比如可利用k-means方法,找出离群点,进一步修正或是剔除!
在这里插入图片描述
避免数据量太少,可以做data hinting!利用已有的资料做一些变化(平移旋转),得到virtual example(与原有数据差别不要太大,防止破坏数据disturbtion) !
在这里插入图片描述
当发现hypothesis 的复杂度已经过大时,可使用regularization!
以及使用validation 时刻关注拟合状况!
在这里插入图片描述

总结:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值