欢迎来到超参数(Hyperparameters)的世界!

在我们之前学习广义线性模型(GLMs)时,重心都放在如何为变量找到最佳的“权重”(系数)。但如果模型“太过”精明会怎样呢?如果它学会了数据中的杂讯(noise)而非真正的规律(signal),又该怎么办?这就是正则化回归(Regularized Regression)登场的时候了,今天我们要学习用来控制模型的“调节旋钮”:超参数(Hyperparameters)

如果刚开始觉得有点复杂,别担心!试着把超参数想象成路上的限速。驾驶(模型)总想开得越快越好,好尽快到达目的地(将误差最小化),但限速(超参数)能确保驾驶保持安全,不会因为开太快而发生意外(过拟合 Overfitting)。让我们一起深入了解吧!


什么是超参数?

在标准的 GLM 中,模型会自动计算系数(\(\beta\))。这些被称为参数(Parameters)。然而,超参数则是我们(数据分析师)在模型开始学习数据之前,必须预先设定的值。

在 Exam PA 和 R 语言的 glmnet 套件中,你需要掌握两个主要的超参数:
1. \(\lambda\) (Lambda): 复杂度参数。
2. \(\alpha\) (Alpha): 弹性网络(Elastic net)混合参数。

快速复习: 参数是由模型从数据中学习得来的;而超参数则是由使用者设定,用来控制学习过程的条件。


1. Lambda (\(\lambda\):惩罚力度)

在正则化回归中,我们在对数概似函数(log-likelihood function)中加入了一个“惩罚项”。这个惩罚项会阻止模型将系数(\(\beta\))设定得过大。而超参数 \(\lambda\) 正是用来控制这个惩罚有多严厉。

  • 当 \(\lambda = 0\) 时: 没有惩罚。模型的行为与标准 GLM 完全一致。如果你有很多变量,这通常会导致过拟合(Overfitting)
  • 当 \(\lambda\) 非常大时: 惩罚极重。模型被迫将系数压得非常小(接近零)。这可能会导致欠拟合(Underfitting)
  • 目标: 找到一个“刚刚好”的 \(\lambda\) —— 不能太大,也不能太小。

类比: 想象 \(\lambda\) 是一种对变量数值大小征收的“税”。如果税率为零,大家就会疯狂消费(系数变大)。如果税率是 100%,就没人敢花钱了(系数为零)。我们想要的是一个能让消费保持理性的税率!


2. Alpha (\(\alpha\):惩罚类型)

虽然 \(\lambda\) 告诉我们惩罚多少,但 \(\alpha\) 决定了我们使用哪种惩罚。在 Exam PA 中,我们通常讨论三种情况:

岭回归(Ridge Regression,\(\alpha = 0\))

岭回归使用 L2 范数(L2 norm) 惩罚,即系数平方和:\(\sum \beta_j^2\)。
关键特征: 它会将所有系数向零缩减,但它们永远不会真正变成零。它将所有变量保留在模型中,只是以一种“温和”的形式存在。

Lasso 回归(\(\alpha = 1\))

Lasso 回归使用 L1 范数(L1 norm) 惩罚,即系数绝对值之和:\(\sum |\beta_j|\)。
关键特征: Lasso 是“极简主义者”。它有能力将系数精确地缩减为零。这意味着 Lasso 可以进行自动变量选择(Automatic variable selection)

弹性网络(Elastic Net,\(0 < \alpha < 1\))

这是岭回归和 Lasso 之间的折衷方案。当你有几个变量之间存在相关性时,它非常有用。

记忆小撇步:
Lasso = Less variables(减少变量,它会把不重要的踢走)。
Ridge = Retains variables(保留变量,它全都留着)。

关键总结: \(\alpha\) 决定了正则化的风格(选择性与缩减性),而 \(\lambda\) 决定了强度


我们如何选择最佳超参数?

我们不是靠猜的!我们使用一种称为交叉验证(Cross-Validation, CV)的程序。特别是 R 的 `cv.glmnet` 函数,这将是你考试时最好的朋友。

步骤指南:

1. 标准化数据: 在正则化之前,务必确保你的数值预测变量处于相同的尺度。(R 的 `glmnet` 预设会执行此操作!)。如果不这样做,尺度大的变量(如“年收入”)与尺度小的变量(如“年龄”)受到的惩罚将会不公平。
2. 执行交叉验证: 电脑会尝试一系列的 \(\lambda\) 值。
3. 选出胜者: 我们通常会查看输出中提供的两个 \(\lambda\) 值:

  • lambda.min: 交叉验证误差最低的 \(\lambda\) 值。如果你追求的是最准确的模型,选这个。
  • lambda.1se: 在最小误差的一个标准误(standard error)范围内,最大的 \(\lambda\) 值。如果你想要一个更简单、更精简(parsimonious)的模型(特别是对于 Lasso),请选这个。

你知道吗? 在 Exam PA 考试中,如果题目要求一个“简单”或“具备解释性”的模型,lambda.1se 通常是首选,因为它产生的非零系数较少!


常见误区避坑

1. 忘记标准化: 正如前面提到的,正则化受尺度影响。幸运的是,`glmnet` 会自动处理,但你应该在报告中提到这一点,以向评分员证明你理解这个概念!

2. 混淆 \(\alpha\) 和 \(\lambda\): 请记住,\(\alpha\) 通常是你主动选择的(或是透过回圈测试出来的),而 \(\lambda\) 是透过交叉验证误差图中的“肘点(elbow)”或“谷底(dip)”找到的具体数值。

3. 忽视类别变量: 使用 Lasso 时,一个拥有 5 个类别的变量可能会有 3 个类别被“归零”,剩下 2 个保留。这就是 Lasso 处理分组变量的方式。


总结清单

- 正则化(Regularization)透过惩罚大的系数来防止过拟合。
- \(\lambda\) (Lambda) 控制惩罚强度。高 \(\lambda\) = 更简单的模型。
- \(\alpha\) (Alpha) 控制惩罚类型。\(\alpha=1\) 为 Lasso(变量选择);\(\alpha=0\) 为 Ridge(系数缩减)。
- 交叉验证(Cross-Validation)是用来找到最佳 \(\lambda\) 的工具。
- lambda.min 用于最佳拟合;lambda.1se 用于更简单、更稳健的模型。

做得好!你已经掌握了正则化回归的调节旋钮。这些工具对于构建能够在未知数据上表现良好的 GLM 至关重要——这正是精算师必备的能力!