过拟合 - DAY13
模型的泛化能力
我们的目标是在建模中构建出泛化(generalization)能力很强的模型。对于泛化能力很强的理解,意思是指无论是训练数据还是测试数据,均在模型中得到很好的表现。
如何构建泛化能力强模型
选择正确的数据
选择正确的模型
选择合适的优化算法
避免过拟合
什么是过拟合?
当没有加任何惩罚项的情况下参数变得非常大,这种现象就叫过拟合。当一个模型在训练数据的时候表现得很好,但是在测试的时候,却表现得很差的时候,这种现象就叫作过拟合。
模型参数变大,是导致过拟合的一个重要原因,假设一个模型最后学出来的参数值为(0.2, 0.4, 45495)(0.3,0.5,89997),是一个三维的向量,由于第三个参数非常大,就会导致模型的不稳定,就算第三个参数输入的值很小。
如何避免过拟合?
对于过拟合来说,有一种规律,越复杂的模型越容易过拟合。比如 SVM 相比逻辑回归更容易过拟合;深度神经网络相比浅层神经网络更容易过拟合。
要避免过拟合,数据量应当尽可能多,或者尽量选择合适的简单模型,或者是引入正则项。在现实生活当中,大家都会尽量选择更多的数据,但是很多时候,数据获得是有门槛的,有难度的。因此,梯度下降法也经常被用到复杂模型当中,或者是引入正则项,如 L2.
正则的种类
正则的应用范围非常广泛,它既可以用在逻辑回归也可以用在线性回归、支持向量机、神经网络、以及各类深度学习模型当中。正则的种类也繁多,常见的有 L1 和 L2 正则,还有 L0 等正则也经常被使用,但每一个正则之间还是有很大的区别的。
L1 和 L2 正则都是可以让参数变小的,从而接近过拟合的现象。但 L1 正则会使得部分参数为 0,当数据中有很多特征时,就可以通过 L1 来对特征进行选择,因为关联度不高的特征,参数经常会为 0.
但是 L1 正则也有自身的缺点,当有些特征很相似时,它会把他们归到一起,然后随机选择其中的一个。
ElasticNet 就是 线性回归+L1+L2
版权声明: 本文为 InfoQ 作者【Qien Z.】的原创文章。
原文链接:【http://xie.infoq.cn/article/15867a54163e996545f4942b3】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论