过拟合
出自 MBA智库百科(https://wiki.mbalib.com/)
过拟合(Overfitting)是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。
目录 |
为了得到一致假设而使假设变得过度严格称为过拟合。
给定一个假设空间H,一个假设h属于H,如果存在其他的假设h’属于H,使得在训练样例上h的错误率比h’小,但在整个实例分布上h’比h的错误率小,那么就说假设h过度拟合训练数据。[1]
一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少。[2]
(1)建模样本选取有误,如样本数量太少,选样方法错误,样本标签错误等,导致选取的样本数据不足以代表预定的分类规则;
(2)样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则;
(3)假设的模型无法合理存在,或者说是假设成立的条件实际并不成立;
(4)参数太多,模型复杂度过高;
(5)对于决策树模型,如果我们对于其生长没有合理的限制,其自由生长有可能使节点只包含单纯的事件数据(event)或非事件数据(no event),使其虽然可以完美匹配(拟合)训练数据,但是无法适应其他数据集。
(6)对于神经网络模型:a)对样本数据可能存在分类决策面不唯一,随着学习的进行,,BP算法使权值可能收敛过于复杂的决策面;b)权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征。
(1)在神经网络模型中,可使用权值衰减的方法,即每次迭代过程中以某个小因子降低每个权值。
(2)选取合适的停止训练标准,使对机器的训练在合适的程度;
(3)保留验证数据集,对训练成果进行验证;
(4)获取额外数据进行交叉验证;
(5)正则化,即在进行目标函数或代价函数优化时,在目标函数或代价函数后面加上一个正则项,一般有L1正则与L2正则等。
首先,分类器本质上是一个数学优化问题,用最常见的最小二乘拟合举例,优化目标如下:
「对于所有样本点,拟合函数在样本点处的函数值和样本点处实际的函数值之差的平方和最小」
显然这是一个均方误差最小(MSE)准则。如果拟合函数足够好,那么这个函数值为零。
我们换一种思路,假使一定要让MSE准则为零,可以得到:
1、线性函数只能表达直线上的样本点,因此样本点不在同一条直线上的时候,上面的MSE准则函数值一定严格大于零。因此想让这个函数等于零,样本点至多不超过两个(暂不考虑解不存在的奇异情况);
2、对于任意三个点,使用二次函数能够保证MSE准则等于零(包括三点共线的退化情况);
......
n、对于任意多个点,总能找到一个足够高次数的多项式,使得对于所有点的MSE准则函数为零。
我们称上述拟合效果为一个给定阶次多项式的「表达能力」。
实际上在拟合过程中,多项式的表达能力并非越强越好。因为MSE准则只关注样本点处的拟合误差,因此非常强的表达能力会使得样本点之外的函数值远远偏离期望的目标,反而降低分类器的性能。