“过拟合”问题探究

过拟合的基本理解

过拟合的概念

如果我们有非常多的特征,我们通过学习得到的假设可能能够非常好地适应训练集(代价函数可能几乎为0),但是可能会不能推广到新的数据。

通俗易懂地说,就是训练得到的能非常好地适应我们的训练集,但是对测试集进行预测时,效果会表现的不好。

解决过拟合方法

减少特征值的数量

  • 人为的保留一些重要的特征值
  • 用特征选择算法进行特征的选择(PCA、层次分析法)

正则化

  • 保留所有的特征,但是减少参数 θ \theta θ的大小

根据本次作业要求,我们使用正则化的方法来解决过拟合问题。

正则化原理

正则化是机器学习和统计建模中用于防止过度拟合并提高模型泛化能力的技术。当模型过度拟合时,它已经很好地学习了训练数据,并且可能无法在新的、未见过的数据上表现良好。

最常用的正则化技术是 L1 正则化 (Lasso)、L2 正则化 (Ridge) 和弹性网络正则化。L1 正则化将模型系数的绝对值之和添加到损失函数中,从而鼓励稀疏性和特征选择。L2 正则化添加了模型系数的平方值之和,这使得系数更小但非零。最后,弹性网络正则化结合了 L1 和 L2 正则化。
我们今天主要使用L2正则化来解决过拟合问题:

L2 正则化,也称为 Ridge 正则化,将模型系数的平方值之和添加到损失函数中。

与 L1 正则化不同,L2 正则化不会强制系数恰好为零,而是鼓励系数变小。L2 正则化可以通过将单个特征的影响分散到多个特征来防止过度拟合。当输入特征之间存在相关性时这是有利的。

从数学上来说,L2 正则化项可以写为:

L2 regularization = λ ∑ j = 1 n θ j 2 \lambda\sum\limits_{j=1}^{n}{\theta _{j}^{2}} λj=1nθj2

正则化函数公式

以逻辑回归的损失函数为例:

无正则化情况下的损失函数:

J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( {{h}_{\theta }}\left( {{x}^{(i)}} \right) \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1-{{h}_{\theta }}\left( {{x}^{(i)}} \right) \right)]} J(θ)=m1i=1m[y(i)log(hθ(x(i)))(1y(i))log(1hθ(x(i)))]

加入L2正则化情况下的损失函数:
J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( {{h}_{\theta }}\left( {{x}^{(i)}} \right) \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1-{{h}_{\theta }}\left( {{x}^{(i)}} \right) \right)]}+\frac{\lambda }{2m}\sum\limits_{j=1}^{n}{\theta _{j}^{2}} J(θ)=m1i=1m[y(i)log(hθ(x(i)))(1y(i))log(1hθ(x(i)))]+2mλj=1nθj2

这里的 λ \lambda λ 被称为正则化参数(Regularization Parameter),它使参数大小变大变小,从而使假设函数变得更“简单”。

正则化代码实现

L2正则化情况下的损失函数实现:

在这里插入图片描述

L2正则化情况下的梯度下降算法实现:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值