过拟合的理解

仅是自己某一时间段对过拟合的理解,勿喷勿参考,欢迎指正交流。

没有任何算法是可以避免过拟合的问题的。这是有机器学习本质决定的,不是任何技术层面可以修复的。学习算法本身就存在过拟合的问题,机器学习的核心在于如何泛化。我认为一个学习算法模型由两部分原因去影响过拟合一部分是学习算法本身带的参数调控,另一部分是由学习算法学习所得的参数,这两部分都会造成学习算法的过拟合,,第一部分由人为去改变这些控制模型的参数,第二部分是由数据集让学习算法学习适应学习出来的。

在得到一个数据集时,我们会去选择学习模型,为了评估我们的学习模型表现的好坏,我们会把一部分数据集切割出来,单独去评估模型。当我们根据评估结果去调整参数尽量让再验证集上表现得好一点时,学习算法就可能在我们的总体数据集上产生过拟合。另一方面我们划分的数据集可能在数据集中分布比较集中不能代表总体,也可能产生过拟合。

当我们采用K折交叉验证时,能够使由于数据集分布造成过拟合的问题缓解。但当我们使用网格调参GridSerachCV时,根据评估结果去选择参数时,仍然会调控自带的参数调控造成过拟合。

我们建模去解决问题主要就是减少过拟合,提高泛化,模型的表达能力。


你可能感兴趣的:(机器学习,深度学习)