我在b站学ML(八)
过拟合问题及解决方法
从线性回归中房价的例子可以很容易理解欠拟合和过拟合的问题
过度拟合的问题将会在变量较多的时候发生,这种时候训练的方程总能很好的拟合训练数据,所以代价函数很可能非常接近于0,但是这样的曲线它千方百计的拟合于训练数据,把一些样本自带的属性认作是整个系统所具有的属性,这将导致它无法泛化到新的数据样本中,以至于无法做出正确的预测。(泛化指的是一个假设模型能够应用到新样本的能力)
同样的在逻辑回归模型中也会有此类问题:
解决方法:
一、尽量减少选取变量的数量
1、人工检查变量的条目并以此决定哪些变量更为重要,然后决定保留哪些特征变量,哪些应该舍弃
2、模型选择算法,自动选择采用和舍弃哪些特征变量
(存在的问题是舍弃一部分特征变量意味着舍弃了问题中的一些信息)
二、正则化
1、正则化中我们将保留所有的特征变量,但是减少数量级或参数数值的大小
2、当我们具有很多特征变量,并且每个都会对y的值产生一定影响时,正则化效果会很好
(通过正则化达到控制特征影响力的效果,增强泛化能力)
多项式回归中房价的例子,通过对惩罚使它们的值接近0,来降低高次项对最终结果的影响力。更一般的我们对都做惩罚,使得函数更加光滑。并没有减少特征的数量,但是减少了某些特征的影响力。在代价函数中加入正则化项得到新的代价函数:
称为正则化项,称为正则化参数,其目的是控制在两个不同的目标中的一个平衡关系。第一个目标是,就是我们想要训练使假设更好的拟合训练数据,使之能更好的适应训练集,第二个目标是,希望保持参数值较小。如图对比使用与不使用正则化的效果
但是当被设定的非常大时,将会以极大的力度惩罚……,这将会使这些参数都非常接近0,在假设函数中这些参数所在的项就相当于被去掉了,只剩下常数项,类似于拟合了一条水平直线,对于数据来说这就是一个欠拟合。
正则化线性回归的梯度下降算法(这里对求偏导没搞懂见https://blog.****.net/After__today/article/details/81267788)
即
回归之前的学习,不使用正则化时,时,代价函数最小(见https://mp.****.net/postedit/81352891)
那么使用了正则化之后呢
正则化逻辑回归算法
修改代价函数:
将梯度下降算法应用进来