一、过拟合/欠拟合
拟合误差是指模型在训练数据上的误差。当我们训练一个模型时,我们希望它能够在训练数据上表现良好,但是我们也希望它能够在新的数据上表现良好。因此,我们需要控制拟合误差,以避免过拟合。
过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在测试数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)
欠拟合: 一个假设在训练数据上不能获得更好的拟合,并且在测试数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)
二、原因以及解决办法
2.1 欠拟合原因以及解决办法
原因: 学习到数据的特征过少。
解决办法:
1)添其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。除上面的特征之外,“上下文特征”、“平台特征”等等,都可以作为特征添加的首选项。
2)添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强。
1、Add new features 1.增加新功能
2、Increase model complexity 2.增加模型复杂性
3、Reduce the regularization coefficient 3。减小正则化系数
2.2 过拟合原因以及解决办法
原因: 原始特征过多,存在一些嘈杂特征,模型过于复杂是因为模型尝试去兼顾各个测试数据点。
解决办法:
1.Data augmentation
2.Reduce model complexity
3.Regularization method
4.使用 dropout 技术来随机地删除一些神经元,从而减少模型的复杂度。
5.Bayesian method
6.Ensemble learning
7.Early stopping,使用早停技术(Early stop technology)来在验证集上监测模型的性能,并在性能不再提高时停止训练,从而避免过拟合,从而使模型更加泛化。
8、当我们有更多的训练数据时,模型可以更好地学习数据的特征,从而减少过拟合的风险。
三、正则化
在解决回归过拟合中,我们选择正则化,但是对于其他机器学习算法如分类算法来说也会出现这样的问题除了一些算法本身作用之外(决策树、神经网络),我们更多的也是去自己做特征选择,包括之前说的删除、合并一些特征。
在学习的时候,数据提供的特征有些影响模型复杂度或者这个特征的数据点异常较多,所以算法在学习的时候尽量减少这个特征的影响(甚至删除某个特征的影响),这就是正则化(通过限制高次项的系数进行防止过拟合)。
注:调整时候,算法并不知道某个特征影响,而是去调整参数得出优化的结果
3.1正则化类别
3.1.1 L2正则化
作用:可以使得其中一些W的都很小(把高次项前面的系数变成特别小的值),都接近于0,削弱某个特征的影响。
优点:越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象
Ridge回归
3.1.2 L1正则化
作用:可以使得其中一些W的值直接为0(直接把高次项前面的系数变为0),删除这个特征的影响
LASSO回归