出现过拟合的原因及解决方案

出现过拟合的原因及解决方案

机器学习需要我们利用模型对数据进行拟合,但并不是对训练集进行正确预测,而是对未曾在训练集合出现的样本能够正确预测。模型对训练集以外样本的预测能力就称为模型的泛化能力,过拟合与欠拟合就会导致模型泛化能力不高。

首先看下列几张图
出现过拟合的原因及解决方案_第1张图片
出现过拟合的原因及解决方案_第2张图片
第一个模型有许多错分的数据,不能很好的适应我们的训练集,属于欠拟合;第二个模型虽然有个别错误数据点,但是预测新数据效果很好;第三个模型是很复杂的模型,很完美的拟合了训练集的每个数据,但是过于强调拟合原始数据,而丢失了算法的本质:预测新数据。我们可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合。

所以,我们的数据在训练集上可能表现的很好,但是在遇到新数据后表现就没那么出色,这种现象叫过拟合。

出现过拟合的原因是什么?
(1)建模样本选取有误,如样本数量太少,选样方法错误,样本标签错误等,导致选取的样本数据不足以代表预定的分类规则;
(2)样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则;
(3)假设的模型无法合理存在,或者说是假设成立的条件实际并不成立;
(4)参数太多,模型复杂度过高;
(5)对于决策树模型,如果我们对于其生长没有合理的限制,其自由生长有可能使节点只包含单纯的事件数据(event)或非事件数据(no event),使其虽然可以完美匹配(拟合)训练数据,但是无法适应其他数据集;(6)对于神经网络模型:a)对样本数据可能存在分类决策面不唯一,随着学习的进行,,BP算法使权值可能收敛过于复杂的决策面;b)权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征。

那么,出现过拟合之后要如何处理?
数据层面:
(1)数据扩增,即增加训练数据样本;
(2)特征工程,筛选组合得到更高质量的特征。
模型层面:
(1)正则化(Regularization)(L1正则和L2正则);
(2)选择较为简单的模型;
(3)集成学习,Bagging策略组合模型降低模型方差。

这里我们着重说一下正则化,正则化可以保持模型简单,另外,规则项的使用还可以约束我们的模型的特性。
出现过拟合的原因及解决方案_第3张图片
正则化有包含L1正则和L2正则:
L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。
出现过拟合的原因及解决方案_第4张图片
L1正则化是指权值向量中各个元素的绝对值之和,L2正则化是指权值向量中各个元素的平方和然后再求平方根。

L1正则化对所有参数的惩罚力度都一样,可以让一部分权重变为零,因此产生稀疏模型,能够去除某些特征(权重为0则等效于去除)。L1会趋向于产生少量的特征,而其他的特征都是0。因为最优的参数值很大概率出现在坐标轴上,这样就会导致某一维的权重为0,产生稀疏权重矩阵。

L2正则化减少了权重的固定比例,使权重平滑。L2正则化不会使权重变为0(不会产生稀疏模型),所以选择了更多的特征。L2会选择更多的特征,这些特征都会接近于0。 最优的参数值很小概率出现在坐标轴上,因此每一维的参数都不会是0。当最小化||w||时,就会使每一项趋近于0。

你可能感兴趣的:(特征工程,模型参数,机器学习)