很多时候,我们用各种方法来防止过拟合。我的疑惑是过拟合为什么不好?有哪些缺陷?
8个回答
我理解的过拟合就是因为模型太复杂,太精细了,不仅学习了训练集的真实分布,还学习训练集中的随机噪音。而这个噪音就是机器学习过程中的干扰项。避免学习这些噪音就是防止过拟合。
通常来说,过拟合的模型的训练误差相对很小,测试误差相对很大;而好的模型的训练误差和测试误差都适中。
贴几个过拟合的例子。
这是个二元分类的问题。黑色是合理的分界线,绿色就是过拟合的分界线。
下面是一个回归的例子。黑色的线是看起来比较合理的回归线,而蓝色的线看起来过拟合。
SofaSofa数据科学社区DS面试题库 DS面经过拟合是在用训练集进行模型训练的时候,为了在训练集上取得很好地效果,调整各种参数使得模型在训练集上能达到特别好的效果,此时模型会根据训练集的特点得出各种规则去拟合训练集来提高模型的效果。而训练集其实只是整个数据集中的一部分,其包含两部分特征,一部分是整个数据集共有的特征,一部分是训练集自身共有的特征,当过拟合时,模型学到的是这两部分的特征,此时拿模型去在测试集上测试时,因为测试集不包含训练集自身共有的特征,所以测试集在模型上就不会取得很好的效果。因此需要防止过拟合。
SofaSofa数据科学社区DS面试题库 DS面经转一个网上的段子:
“不知道大家在学车的时候教练教倒库和侧方停车的时候有没有教一串口诀:类似于在车窗的XX框切XX杆的时候打满,切XX的时候回正等等,这个口诀可以顺利让你通过科目二,然而换个车或者换个场地,你就发现并没有卵用... 我们说这只是overfit了某个车和某个场地(训练数据),在新的测试集(新车新场地)上的泛化性能为0。”
一个“培养出马路杀手的”过拟合的教练,怎么能好呢!
SofaSofa数据科学社区DS面试题库 DS面经我们做机器学习的一个目的就是预测
对训练集所做的拟合都是在已知目标变量的基础上进行的,拟合的再好,这些都是已经知道的
最终的目的就是为了预测,就是能够对未知的事情进行预测
而 过拟合恰恰最大的缺陷在这里,已知的拟合的好,未知的却不能很好预测
所以当然要解决这个问题
SofaSofa数据科学社区DS面试题库 DS面经这个问题也不能一概而论。
举个网上之前的例子“打个比方,如果期末考试题就是平时的作业,那我们把平时的作业都背一遍就是最好的方式,而这就是过拟合。如果期末考试不考平时作业,全是新题,那么这个时候就不能只背平时的作业,还要充分理解这门课的知识,掌握如何推理解题的技巧。”
所以过拟合好坏与否,完全取决于场景。如果应用场景依靠死记硬背就能搞定,那过拟合反倒是好的。
在拿过去预测未来的应用场景下,有的时候过拟合不一定不好,要根据实际情况来看。
SofaSofa数据科学社区DS面试题库 DS面经相关讨论
随便看看