机器学习进阶文档深度页
L1、L2 与 Elastic Net
在数据损失上加入权重惩罚,控制复杂度并改善未见数据稳定性。
学习前需要掌握
线性模型内容待补充数值标准化(Z-score)
背景与问题
高维、小样本、噪声与共线性可能让线性模型权重过大且不稳定。
概念定义
L1 惩罚绝对值和并产生稀疏权重;L2 惩罚平方和并平滑收缩;Elastic Net 混合二者。
直观理解
不仅要求答对训练题,还对过于极端的参数收费。
核心原理
特征需先标准化以保证惩罚公平。正则过强会欠拟合,强度必须在训练集内部交叉验证。
数学表达
核心表达
特征需先标准化以保证惩罚公平。正则过强会欠拟合,强度必须在训练集内部交叉验证。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1标准化
- 2选择惩罚类型
- 3设对数候选强度
- 4交叉验证
代码对应位置
示例 1L1、L2 与 Elastic Net 实现:对应文档中的训练与预测逻辑。
计算与实现步骤
- 1
标准化
- 2
选择惩罚类型
- 3
设对数候选强度
- 4
交叉验证
- 5
检查训练/验证和非零权重
- 6
最终测试
代码实现
示例 1
L1、L2 与 Elastic Net 实现
L1、L2 与 Elastic Net 实现
scikit-learn
example_01.py用途:对应文档中的训练与预测逻辑。
from sklearn.linear_model import ElasticNet
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
model=make_pipeline(StandardScaler(),ElasticNet(alpha=0.1,l1_ratio=0.5))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
对应文档中的训练与预测逻辑。
model- 组合预处理和估计器的模型对象。
alpha- 当前学习率,控制每次参数更新的步长。
Step 1 · 1–4 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
from sklearn.linear_model import ElasticNet
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
model=make_pipeline(StandardScaler(),ElasticNet(alpha=0.1,l1_ratio=0.5))代码与数学原理
减去训练均值并除以训练标准差,对应代码中的 mean/std 或 StandardScaler。
预期输出或运行结果
得到同时受 L1 与 L2 约束的回归模型。
常见错误 · 4 条
- 不要在测试集上调用 fit 或 fit_transform;测试集只能复用训练参数。
- 未标准化
- 正则越强越好
- 零权重解释为无因果作用
实际应用
- 高维回归
- 稳定权重
- 特征选择
常见错误
未标准化
正则越强越好
零权重解释为无因果作用
文档来源
03|线性模型原始文档
学习资料/learning_tech/03_linear_models.md- §4 为什么需要正则化
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。