lasso(L1正则化、lasso回归)

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

维基百科

约束条件:

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

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

表达式:

这里写图片描述

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

L1、L2正则化对比

### L1正则化Lasso正则化的概念及应用 #### 概念解释 L1正则化,又称为Lasso正则化,在机器学习中被广泛应用于线性回归模型的优化过程。它的核心思想是在损失函数的基础上增加一个与权重绝对值之和成比例的惩罚[^2]。这种惩罚机制能够有效减少模型参数的数量,从而降低模型复杂度并提升其泛化性能。 对于一个标准的线性回归模型,假设原始损失函数为 \( L \),加入L1正则化后的总损失函数可表示如下: \[ L_{\text{total}} = L + \lambda \sum_{i=1}^{n}|w_i| \] 其中,\( w_i \) 表示第 \( i \) 个特征对应的权重,而 \( \lambda \) 是控制正则化强度的超参数[^4]。 #### 实现方式 在实现过程中,可以通过调整 \( \lambda \) 的大小来平衡数据拟合能力和模型简化程度之间的关系。当 \( \lambda \) 较大时,更多的权重会被压缩至零,这有助于构建稀疏模型;反之,则允许更多非零权重参与预测[^3]。 以下是基于Python语言的一个简单代码示例展示如何利用Scikit-Learn库实现带有L1正则化的线性回归: ```python from sklearn.linear_model import Lasso import numpy as np # 创建模拟数据集 X = np.array([[0, 0], [1, 1], [2, 2]]) y = np.dot(X, np.array([1, 2])) + 0.5 # 初始化Lasso模型对象,并设置alpha值(即λ) lasso_regressor = Lasso(alpha=0.1) # 训练模型 lasso_regressor.fit(X, y) print("Coefficients:", lasso_regressor.coef_) print("Intercept:", lasso_regressor.intercept_) ``` 此段代码展示了如何定义、训练以及获取最终得到的系数和截距值。 #### 应用场景 由于L1正则化具有使部分权重变为零的能力,因此非常适合处理高维稀疏数据的情况。例如,在基因表达数据分析或者推荐系统等领域,往往面临大量可能无关紧要甚至冗余的输入变量,此时采用Lasso回归可以帮助筛选出真正重要的特征[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值