正则化(Regularization)

过拟合问题(Overfitting)

当我们对一个问题建立线性回归模型或逻辑回归模型时,不恰当的选择特征会导致过拟合问题。过拟合问题是指当我们选择了很多的特征值时,模型对数据集的每一个example都符合的很好,但是对新的example却预测不能,偏差较大。

解决方法

方法一:减少特征量的数量

方法二:正则化

本片博客暂不讨论方法一,着重于正则化的分析。

正则化(Regularization)

正则化的思想是保留所有特征量,而通过减小\small \Theta的值解决过拟合,这样我们就可以在不舍弃任何一个有价值的量的前提下解决过拟合问题。

线性回归正则化

线性回归正则化的具体操作方法是在代价函数后添加一项\frac{\lambda }{2m}\sum_{j=1}^{n}\Theta _j^{2},其中\lambda正则化系数,这样

代价函数变为:

\large J(\Theta ) = \frac{1}{2m}[\sum_{i=1}^{m}(h_\Theta (x^{(i)})-y^{(i)})^2+\lambda \sum_{j=1}^{n}\Theta _j^2]

梯度下降算法变为:

repeat until convergence{

           \small \Theta _0 := \Theta _0-\alpha *\frac{1}{m} \sum_{i=1}^{m}((h_\Theta (x^{(i)})-y^{(i)})*x^{(i)}_0)

           \small \Theta _j := \Theta _j-\alpha *[\frac{1}{m} \sum_{i=1}^{m}((h_\Theta (x^{(i)})-y^{(i)})*x^{(i)}_j)+\frac{\lambda }{m}\Theta _j]    j = 1,2,3,...n

}

正规方程法变为:

\Theta = (X^T*X+\lambda *E)^{-1}*X^T*y,其中E是(n+1)*(n+1)的单位矩阵。注意此时不存在不可逆的问题

逻辑回归正则化

代价函数变为:

J(\Theta ) = -\frac{1}{m}(ylog(h_\Theta (x))+(1-y)log(1-h_\Theta (x)))+\frac{\lambda }{2m}\sum_{j=1}^{n}\Theta _j^2

梯度下降算法变为:

repeat until convergence{

           \small \Theta _0 := \Theta _0-\alpha *\frac{1}{m} \sum_{i=1}^{m}((h_\Theta (x^{(i)})-y^{(i)})*x^{(i)}_0)

           \small \Theta _j := \Theta _j-\alpha *[\frac{1}{m} \sum_{i=1}^{m}((h_\Theta (x^{(i)})-y^{(i)})*x^{(i)}_j)+\frac{\lambda }{m}\Theta _j]    j = 1,2,3,...n

}

代码实现

通过使用MATLAB和Python,实现了逻辑回归的正则化处理。代码已上传至github,文件夹是machine-learning-ex2。

若对本篇博客有任何问题,欢迎指正,欢迎讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值