5.过拟合问题

5.1 什么是过拟合问题?

还是用那个线性回归的房子预测

 最右边的图像看起来拟合的很好,但是实际上它不停上下波动。这种问题我们称之为过度拟合,这个算法具有高方差。过度拟合问题将会在变量过多的时候出现,这时训练出的假设能很好地拟合训练集,所以代价函数实际上可能非常接近于0。但这样就会遇到最右边的情况,它千方百计地拟合训练集导致它无法泛化(一个假设模型应用到新样本的能力)到新的样本中无法预测新样本的价格。

这样的情况也同样适用于逻辑回归(logistic regression)

5.2  解决过拟合问题

  • 尽量减少选取变量的数量:具体的做法就是人工检查变量清单并以此决定哪些变量更为重要,哪些特征变量应该保留,哪些应该舍弃;后面会学到模型选择算法,这种算法可以自动选择哪些特征变量应该保留和舍弃。缺点就是:有些特征变量是被需要的,舍弃掉会对预测有影响。
  • 正则化:我们会保留所有的特征变量,但是减少量级或者\theta_{j}的大小,这个方法非常有效。

 5.3 正则化

还是第一个例子图

对于过度拟合的右边那张图,可以让\theta_{3},\theta_{4}数值很小,约等于0。

这是优化目标: \underset{\theta}{min}\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2},在这个优化目标后加上1000\theta_{3} + 1000\theta_{4}

正则化的思路就是:如果我们的参数值较小,参数值较小意味着一个更简单的假设模型。就比如说上面的\theta_{3},\theta_{4},让它们接近与0,我们会得到一个更简单的假设模型。

 正则化的优化目标:J(\theta) = \frac{1}{2m}\left [ \sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2} +\lambda \sum_{j=1}^{n}\theta_{j}^{2}\right ],j=1,2,3,...,n

第一个目标是与目标函数的第一项有关,就是我们想去训练、想更好地拟合数据、更好地拟合训练集;第二个目标就是我们要保持参数尽量地小与目标函数第二项有关、与正则化目标有关。在这里的\lambda是用来控制两个不同目标之间的取舍,被称为正则化参数,更好地去拟合训练集的目标和将参数控制得更小的目标,从而保持假设模型的相对简单,避免出现过拟合的情况。

 5.4 线性回归的正则化

上一节正则化代价函数:J(\theta) = \frac{1}{2m}\left [ \sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2} +\lambda \sum_{j=1}^{n}\theta_{j}^{2}\right ]

正则化的梯度下降:\theta_{j} := \theta_{j} - \alpha \left [\frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})x_{j}^{(i)} + \frac{\lambda }{m}\theta_{j}\right ],j=1,2,3,...,n等价于

\theta_{j} := \theta_{j}(1-\alpha \frac{\lambda }{m})-\alpha \frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})x_{j}^{(i)}

其中:1-\alpha \frac{\lambda }{m}< 1h_{\theta}(x) = \theta^{T}x,且\theta_{0}的更新是单独的

在之前学过用正规方程来计算\theta,在没有正则化之前:\theta = (X^{T}X)^{-1}X^{T}y

正则化之后:if \lambda >0,

 \theta = \left ( X^{T}X + \lambda \begin{bmatrix} 0 & & & & \\ & 1& & & \\ & & 1 & & \\ & & & ...& \\ & & & & 1 \end{bmatrix} \right )^{-1}X^{T}y

5.5 逻辑回归的正则化

逻辑回归的代价函数:J(\theta) =-\frac{1}{m}\left [ \sum_{i=1}^{m}y^{(i)}log(h_{\theta}(x^{(i)})) + (1-y^{(i)})log(1-h_{\theta}(x^{(i)})) \right ]

 正则化的逻辑回归代价函数:

J(\theta) =-\frac{1}{m}\left [ \sum_{i=1}^{m}y^{(i)}log(h_{\theta}(x^{(i)})) + (1-y^{(i)})log(1-h_{\theta}(x^{(i)})) \right ]+\frac{\lambda }{2m}\sum_{j=1}^{n}\theta_{j}^{2}

正则化的梯度下降:\theta_{j} := \theta_{j} - \alpha \left [\frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})x_{j}^{(i)} + \frac{\lambda }{m}\theta_{j}\right ],j=1,2,3,...,n

其中,1-\alpha \frac{\lambda }{m}< 1h_{\theta}(x) = \frac{1}{1+e^{-\theta^{T}}},且\theta_{0}的更新是单独的

 3.6 对于高级算法的正则化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头少女Emily

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值