https://www.zhihu.com/question/59201590/answer/1250993433
http://www.cnblogs.com/TenosDoIt/p/3712590.html
过拟合(overfitting)是指过于紧密或精确地匹配特定数据集,以致于无法良好地拟合其他数据或预测未来的观察结果的现象。通俗的来讲,就是训练的模型在训练集上的精确度很高,但是在测试集上的精确度却很差的现象。模型泛化能力弱。
过拟合发生的原因:往往是相对于有限数据而言,使用了参数过多或者结构过于复杂的统计模型。而它的本质,则是训练算法从训练集的统计噪声中不自觉地获取了信息并表达在模型结构的参数中。过拟合往往可以用偏差-方差权衡(bias-variance tradeoff)来解释。当过拟合发生时,模型的偏差小而方差大,导致模型在测试集上的误差变大。
简单的以下面曲线拟合例子来讲:
直线拟合后,相比原来的点偏差最大,最后一个图完全拟合了数据点,偏差最小;但是拿第一个直线模型去预测未知数据,可能会相比最后一个模型更准确,因为最后一个模型过拟合了,即第一个模型的方差比最后一个模型小。一般而言高偏差意味着欠拟合,高方差意味着过拟合。他们之间有如下的关系:
常见的机器学习算法,都有不少防止过拟合的方法。常见的是正则项,比如L1和L2正则项。除此之外,根据机器学习算法的不同,过拟合方法也不同,我们在此列举一二。
神经网络是深度学习中常用的模型结构。当神经网络模型的结构复杂度增加,过拟合也随之发生。常用的防止过拟合的方法有:
• 支持向量机(SVM)是传统的监督式学习算法,往往使用核技巧有效地进行非线性分类。支持向量机中常见的防止过拟合方法有:
随机森林(Random Forest)是包含多个决策树的分类器,其输出的类别由各个决策树输出类别的众数决定。随机森林往往不容易发生过拟合,因为它是通过不同决策树的集合来降低模型的方差,但随机森林依旧有可能导致过拟合。常见的防止过拟合方法有: