欠拟合,过拟合和正则化

整理的关键点

欠拟合:模型过于简单,不能很好的描述数据的趋势,导致在训练集误差也很大

1、添加特征量,可能选取的特征不能完全的表示数据的趋势

2、添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强

3、减小惩罚项,减少L1,L2正则化参数

所谓的过拟合就是模型在训练集误差较小,而在测试集却出现较大误差,可能是模型过于复杂导致的

1、可以多增加训练集样本量 # 增加训练量可以避免过拟合

2、提前终止模型

3、重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据

4、加入惩罚项,L1,L2正则化

5、神经网络中的Dropout(按照一定的概率将某些隐藏层暂时从网络中丢弃)

6、决策树中根据信息增益或者信息增益比的剪枝操作

关于正则化:

L0范数是指向量中非0的元素的个数

主要是L1和L2范数:

L1范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”

既然L0可以实现稀疏,为什么不用L0,而要用L1呢?

个人理解一是因为L0范数很难优化求解(NP难问题)二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解

L2范数是指向量各元素的平方和然后求平方根

可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0

L2正则项起到使得参数w变小加剧的效果,但是为什么可以防止过拟合呢?

一个通俗的理解便是:更小的参数值w意味着模型的复杂度更低,对训练数据的拟合刚刚好(奥卡姆剃刀)

不会过分拟合训练数据,从而使得不会过拟合,以提高模型的泛化能力

L1在图像上是正方形,L2是圆,看表达式就可以发现

总之就是L1将很多变为0,选取少部分特征,而L2将很多趋近于0,但不是0,所以L1是离散化,L2是连续

L1在江湖上人称Lasso,L2人称Ridge

Lasso方法下解出的参数常常具有稀疏的特征,即很多特征对应的参数会为零,这就使得特征选择成为可能

Lasso就是常用的特征降维的方法,PCA,LDA(下次整理下)

参考: https://blog.csdn.net/zouxy09/article/details/24971995

猜你喜欢

转载自blog.csdn.net/figthingforadream/article/details/79869037