机器学习(九):过拟合和正则化

本文详细探讨了过拟合现象在模型中的表现,介绍了如何通过增加训练数据、选择适当特征和应用正则化来防止过拟合。通过正则化公式和梯度下降在逻辑回归中的应用实例,展示了如何在代价函数中平衡模型复杂度和泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、过拟合

       下面三张图对应三个模型:

  1. 第一个模型属于欠拟合(underfit或high bias),模型的预测值与实际值有很大偏差
  2. 第二个模型属于正正好(generalization),可以推广到其他数据
  3. 第三个模型属于过拟合(overfit或者high variance),模型的预测值与实际值的偏差几乎没有,但是很难推广到其他数据,当出现新的数据时,模型的预测值明显不符合预期。如果有两批不同的训练集数据,使用这种模型训练,算出的w1、w2参数将会截然不同

二、如何避免过拟合

1、收集更多训练数据集

训练集数据量越大,模型越能避免过拟合

2、选择合适的特征集

选取合适的特征子集,比如有20种特征,只选取适合的其中几种特征。不过有风险丢失掉有用的特征,导致模型不准确

3、正则化(Regularization)

当拥有很多特征,不知道哪些特征是重要特征时,使用正则化缩小所有的参数,不使用极端参数,使拟合更加光滑。

举个例子,下图是过拟合模型

        通过把上述模型的w2、w3、w4参数减小,减小参数值的影响,就可以得到正正好的模型。

三、正则化

1、正则化公式

在代价函数中引入正则化,\frac{\lambda }{2m}\sum_{j=1}^{n}w_{j}^{2},n为特征个数,\lambda是正则化参数,\lambda>0

平方误差代价函数引入正则化后,表达式:

J(\vec{w},b)=\frac{1}{2m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})^{2}+\frac{\lambda }{2m}\sum_{j=1}^{n}w_{j}^{2}

逻辑回归代价函数引入正则化后,表达式:

J(\vec{w},b)=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}log(f_{\vec{w},b}(\vec{x}^{(i)}))+(1-y^{(i)})log(1-f_{\vec{w},b}(\vec{x}^{(i)}))]+\frac{\lambda }{2m}\sum_{j=1}^{n}w_{j}^{2}

\lambda的选择:如果\lambda选择特别小,那么正则化将起不到作用;如果\lambda特别大,那么需要减小w参数,才能减小代价函数,就会导致欠拟合

2、梯度下降

       以平方误差代价函数为例,J(\vec{w},b)=\frac{1}{2m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})^{2}+\frac{\lambda }{2m}\sum_{j=1}^{n}w_{j}^{2}   代入梯度下降得到:

w_{j}=w_{j}- \alpha [\frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})x_{j}^{(i)}+\frac{\lambda }{m}w_{j}]

b=b- \alpha \frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x }^{(i)})-y^{(i)})

学习来源:B站吴恩达,P37-P41,10.1-10.5节

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值