L1 正则化与稀疏性
以权重绝对值之和惩罚复杂度,几何尖角与软阈值使部分权重精确变为零。
学习前需要掌握
背景与问题
当很多特征可能冗余、训练样本相对有限时,单纯降低训练误差容易得到复杂或不稳定的权重。L1 在数据损失之外惩罚权重绝对值,能在某些优化问题中产生精确零系数。
稀疏性有助于压缩模型或形成特征子集,但“某列为零”只描述当前建模过程,不能直接解释成该因素在现实中没有作用。
概念定义
L1 惩罚是权重绝对值之和,强度参数控制它与数据拟合项的权衡。截距是否受惩罚、损失如何归一化,需要根据具体模型和接口说明。
L1 与 L2 不同:前者的非光滑零点可以产生阈值效应,后者通常连续缩小系数。不能因为二者都叫正则化就认为参数数值可直接对照。
直观理解
L1 更像要求模型为每项非零使用支付代价:微弱的贡献可能被压到零,足够强的贡献才留下。这个比喻不代表可以脱离特征单位或其他特征的关系来判断价值。
一个可手算的阈值子问题
构造目标 0.5×(w−a)²+0.5×|w|。a 依次为 0.1、1、-2 时,最优 w 依次为 0、0.5、-1.5:小于阈值的弱量被压为零,其余按符号收缩。
这展示的是特定二次子问题的解析结构,不是说所有 Lasso 模型都能对原始相关系数直接套一次阈值。实际多特征问题还要处理损失耦合、尺度与收敛。
核心原理
在可分离的二次子问题中,L1 的解表现为软阈值:绝对值较小的量变为零,其余向零缩小同样幅度。一般模型仍需要正确的优化器或坐标更新,不能把普通梯度符号随意相减就保证稀疏。
特征尺度影响同一预测贡献所需的权重,因此通常要把缩放与选择放进同一训练管线。全数据先标准化再交叉验证,仍然会泄漏验证信息。
强度过大可能删掉有用信号并欠拟合,强度过小可能几乎不限制复杂度。应在训练内部验证,并同时检查预测表现、保留列数与跨折稳定性。
相关特征可能互相替代,使单次稀疏清单不稳定。解释结果时要结合数据和模型条件;零系数不是因果排除证据。
数学表达
核心表达
先标准化;λ 越大稀疏越强但可能欠拟合。零权重只表示当前模型未使用,不代表无现实因果。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1划分数据
- 2标准化
- 3设置 λ/alpha/C 范围
- 4折内选择
代码对应位置
示例 1直接核对软阈值的三个区域:用固定二次子问题说明精确零值的来源。
计算与实现步骤
- 划分数据
- 标准化
- 设置 λ/alpha/C 范围
- 折内选择
- 检查非零数与验证表现
- 分析稳定性
代码实现
示例 1
直接核对软阈值的三个区域
example_01.py用途:用固定二次子问题说明精确零值的来源。
import numpy as np
a = np.array([0.1, 1.0, -2.0])
strength = 0.5
w = np.sign(a) * np.maximum(np.abs(a) - strength, 0.0)
print("solution:", w.tolist())代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
用固定二次子问题说明精确零值的来源。
w- 模型权重或当前待优化参数。
Step 1 · 1–5 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
import numpy as np
a = np.array([0.1, 1.0, -2.0])
strength = 0.5
w = np.sign(a) * np.maximum(np.abs(a) - strength, 0.0)
print("solution:", w.tolist())预期输出或运行结果
solution: [0.0, 0.5, -1.5]
常见错误 · 3 条
- 未标准化
- 零权重当因果结论
- 完整数据先选择
实际应用
- 稀疏回归
- 特征选择
常见错误
- 未标准化
- 零权重当因果结论
- 完整数据先选择
推荐学习资料
参考库不会生成虚假资源或无效外部链接。