lasso(L1正则化、lasso回归)

本文探讨了L1正则化的约束条件及其与L2正则化的区别。L1正则化通过L1范数可以将模型参数减少至0,适合特征选择;而L2正则化则通过L2范数防止权重过大会导致模型过拟合。在机器学习中,调节正则化参数C与正则化强度有关,增大C会降低正则化效果。
摘要由CSDN通过智能技术生成

维基百科

约束条件:

  • L1正则化:L1范数
  • L2正则化:L2范数

结合图形,L1正则化可把参数减为0,而L2不行

表达式:

这里写图片描述

机器学习中的L1、L2正则化参数C是这里lamda倒数的常数倍,减小C对应增大lamda,也就增大了正则化强度,趋于欠学习。
这里写图片描述

L1、L2正则化对比

L2正则化L1正则化都是为了防止模型的过拟合,但是它们的实现方式不同。L2正则化(Ridge回归)通过在损失函数添加L2范数的平方来惩罚模型的复杂度,而L1正则化Lasso回归)则是通过在损失函数添加L1范数来惩罚模型的复杂度。相比于L1正则化,L2正则化有以下好处: 1. L2正则化对异常值不敏感,而L1正则化对异常值非常敏感。这是因为L2正则化是平方项,而L1正则化是绝对值,所以L1正则化会将某些系数压缩到0,从而使得模型更加稀疏,而L2正则化则不会。 2. L2正则化可以解决特征之间相关的问题,而L1正则化不能。这是因为L2正则化是平方项,可以将权重分散到所有特征上,而L1正则化是绝对值,只能将权重分散到部分特征上。 下面是一个使用Ridge回归的L2正则化的例子: ```python from sklearn.linear_model import Ridge from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # 加载数据集 boston = load_boston() X, y = boston.data, boston.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 训练模型 ridge = Ridge(alpha=1.0) ridge.fit(X_train, y_train) # 预测并计算均方误差 y_pred = ridge.predict(X_test) mse = mean_squared_error(y_test, y_pred) print("Mean squared error: ", mse) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值