sklearn中的正则化

本文介绍了sklearn库中正则化的应用,包括L1和L2正则化。L1正则化(Lasso回归)通过引入L1损失,倾向于使不重要特征权重归零,实现特征选择。L2正则化(岭回归)则通过L2损失,防止权重过大,但不会导致权重完全为零。弹性网络结合了L1和L2的优点。提前停止策略用于防止过拟合,寻找训练过程中的最优模型。
摘要由CSDN通过智能技术生成


正则化是处理模拟过拟合最常用的方式之一。本部分我们介绍常见的正则化方法。

L1和L2

Lasso回归的一个重要特点是它倾向于完全消除掉最不重要特征的权重(也就是将它们设置为零)因为所有高阶多项式的特征权重都等于零。换句话说,Lasso回归会自动执行特征选择并输出一个稀疏模型(即只有很少的特征有非零权重)。

你可以通过查下图来了解为什么会这样:轴代表两个模型参数,背景轮廓代表不同的损失函数。在左上图中,轮廓线代表1损失(|θ1|+|θ2|),当你靠近任何轴时,该损失呈线性下降。例如,如果将模型参数初始化为θ1=2和θ2=0.5,运行梯度下降会使两个参数均等地递减(如黄色虚线所示)。因此θ2将首先达到0(因为开始时接近0)。之后,梯度下降将沿山谷滚动直到其达到θ1=0(有一点反弹,因为1的梯度永远不会接近0:对于每个参数,它们都是1或1)。在右上方的图中,轮廓线代表Lasso的成本函数(即MSE成本函数加L1损失)。白色的小圆圈显示了梯度下降优化某些模型参数的路径,这些参数在θ1=0.25和θ2=1附近初始化:再次注意该路径如何快速到达θ2=0,然后向下滚动并最终在全局最优值附近反弹(由红色正方形表示)。如果增加α,则全局最优值将沿黄色虚线向左移动;如果减少α,则全局最优值将向右移动(在此示例中,非正则化的MSE的最优参数为θ1=2和θ2=0.5)。

底部的两个图显示了相同的内容,但惩罚为L2。在左下图中,你可以看到L2损失随距原点的距离而减小,因此梯度下降沿该点直走。在右下图中,轮廓线代表岭回归的成本函数(即MSE成本函数加L2损失)。Lasso有两个主要区别。首先,随着参数接近全局最优值,梯度会变小,因此,梯度下降自然会减慢,这有助于收敛(因为周围没有反弹)。其次,当你增加α时,最佳参数(用红色正方形表示)越来越接近原点,但是它们从未被完全被消除。

L2正则化、岭回归

本部分介绍了sklearn中岭回归的实现方式。

sklearn提供了一个Ridge的线性领回归的实现,但更常用的方式是在其它模型中加入penalty='l2’的参数。我们先看一下Rideg类的使用:

X = np.random.rand(1000, 1)
y = 2 * X + 1

from sklearn.linear_model import Ridge
ridge_reg = Ridge(alpha=1, solver='cholesky')
ridge_reg.fit(X, y)
print(ridge_reg.coef_, ridge_reg.intercept_)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值