正则化回归:岭回归、Lasso 和弹性网

变量多、相互共线时,怎么把系数往 0 收缩来换更稳的预测?惩罚多大合适,Lasso 会留下哪些变量?

SOA SRMSOA PACAS MAS-IIFoA CS2
对过的标准答案
5 条
覆盖的考试公式
1 个
参数
15 个
开源库
1 个

01当场运行

改一个参数,当场重算

正在用默认参数运行,计算量大的方法最多要 20 秒。

04出处和说明

公式从哪里来,有什么限制

列出参考的教材、论文和考试公式条目。方法的限制和实现上的说明也写在这里。

参考

  • James、Witten、Hastie、Tibshirani:An Introduction to Statistical Learning6.2 Shrinkage Methods
  • Friedman、Hastie、Tibshirani (2010) Regularization paths for generalized linear models via coordinate descent

覆盖的考试公式

  • REG-017岭回归与 LassoSRMPAMAS-ICS2

公式条目按精算考试的公式表整理,编号和中文名是平台自己的。

这个方法算什么

把解释变量标准化以后,岭回归用闭式解,Lasso 和弹性网用坐标下降,算出整条系数路径;用 k 折交叉验证选 λ(误差最小或一倍标准误规则),也可以自己给 λ。系数换回原来的尺度,和普通最小二乘对比。

说明和限制

  • 解释变量先标准化(减均值、除以标准差,标准差的分母是 n),截距不受惩罚。目标函数和 glmnet 相同,λ 的大小和 glmnet、statsmodels 的 fit_regularized 可以直接对比。
  • λ → 0 时岭回归等于普通最小二乘。λ 很大时所有系数趋于 0,只剩截距 ȳ。
  • 交叉验证在全部数据上标准化一次,再分折;分折按种子随机,结果和种子有关。一倍标准误规则选误差不超过最小误差加一倍标准误的最大 λ。
  • 岭回归的有效自由度 = Σ d_j²/(d_j² + nλ),d_j 是 Z 的奇异值。

数据

看参数里选的数据:选平台的数据集时是真实数据或公开样例,填自己的数时只用输入的数。上面运行的输出里写明这一次用的是哪种。

开源库和版本

  • numpy2.4.6BSD-3-Clause数值计算

05同族的方法

广义线性模型,还有 21 个方法

同一个方法族里的其他方法。在智能体里,用一句话就能调用这些方法。

在智能体里这样问“变量多、相互共线时,怎么把系数往 0 收缩来换更稳的预测?惩罚多大合适,Lasso 会留下哪些变量?”