弹性网络是统计学和机器学习中的一种方法,结合了套索回归和岭回归的惩罚项。它既能收缩系数、进行特征选择,又能促使相关的预测变量具有相近的系数。该方法由邹辉(Hui Zou)和特雷弗·哈斯蒂(Trevor Hastie)于 2005 年提出,主要面向预测变量众多的问题,包括预测变量数量超过观测数量的情形。其名称寓意一张富有弹性的“网”,能够将成组的相关变量保留下来。(doi.org)
数学表述
对于线性回归,假设有 (n) 个观测、(p) 个预测变量,响应值为 (y_i),预测变量向量为 (x_i),截距为 (\beta_0),系数为 (\beta)。一种常见的弹性网络目标函数为
[ \min_{\beta_0,\beta} \frac{1}{2n}\sum_{i=1}^{n} (y_i-\beta_0-x_i^\top\beta)^2 +\lambda\left[ \alpha|\beta|_1+ \frac{1-\alpha}{2}|\beta|_2^2 \right]. ]
这里,(|\beta|_1=\sum_j|\beta_j|),(|\beta|_2^2=\sum_j\beta_j^2),采用标准的范数记法。第一项是平方误差损失函数,第二项用于正则化。截距通常不受惩罚。(stat.ethz.ch)
拟合由两个超参数控制。非负参数 (\lambda) 决定总体惩罚强度,而 (0\leq\alpha\leq1) 决定惩罚项的构成:
- (\alpha=1) 时采用套索惩罚。
- (\alpha=0) 时采用岭惩罚。
- (0<\alpha<1) 时结合两种惩罚。
- (\lambda=0) 时取消惩罚,目标函数退化为普通最小二乘法的目标函数。
不同实现中的参数名称并不一致:在 scikit-learn 中,alpha 表示总体惩罚强度,对应上式中的 (\lambda);l1_ratio 则对应混合参数 (\alpha)。因此,不能仅凭参数名称相同就直接比较其数值。(scikit-learn.org)
稀疏性与相关预测变量
绝对值惩罚可以使系数恰好为零,从而得到稀疏模型。二次惩罚则会收缩系数,但本身不会施加将系数截为零的阈值。两者结合,在稀疏选择与岭回归带来的稳定性之间取得平衡。当预测变量之间存在很强的相关关系时,套索可能只保留一个变量,而排除其他传递类似信息的变量;弹性网络则倾向于让这些预测变量共同进入或退出模型。(doi.org)
这种分组效应只是一种倾向,并不保证选中某个预先定义的完整变量组。当预测变量列完全相同且二次惩罚强度为正时,由对称性和解的唯一性可知,拟合得到的系数相等。如果各列只是相似,系数则未必相同。这种效应取决于预测变量的缩放方式、惩罚强度,以及两种惩罚之间的配比。(web.stanford.edu)
弹性网络还避免了标准套索解的一项限制:它能够保留数量超过观测数的预测变量。因此,它适用于包含大量相关测量值的高维数据,例如基因表达数据集。最初的论文通过模拟和一个微阵列分类实例展示了该方法。这些例子并不能证明弹性网络在所有情况下都优于套索或岭回归。(doi.org)
优化与计算
该目标函数对应一个凸优化问题。当 (\lambda>0) 且 (\alpha<1) 时,二次惩罚使目标函数关于受惩罚的系数严格凸,因此即使预测变量列之间线性相关,也能得到唯一的系数解。这解决了在变量高度冗余时,纯套索拟合可能出现的退化问题。(web.stanford.edu)
一种广泛使用的算法是坐标下降法:每次更新一个系数,同时保持其他系数不变。若预测变量经过中心化,并缩放至满足 (n^{-1}\sum_i x_{ij}^2=1),则更新公式为
[ \beta_j\leftarrow \frac{S(z_j,\lambda\alpha)} {1+\lambda(1-\alpha)}, \qquad z_j=\frac1n\sum_i x_{ij}r_i^{(j)}, ]
其中,(r_i^{(j)}) 是不计预测变量 (j) 时的残差。软阈值算子定义为 (S(z,t)=\operatorname{sign}(z)\max(|z|-t,0))。 分子实现稀疏选择,分母则加入类似岭回归的收缩作用。(rdrr.io)
软件通常会按 (\lambda) 从大到小的顺序计算正则化路径,并将每一步的解用作下一步的初始值。这种“热启动”能高效地拟合一系列模型。最初的弹性网络论文采用的则是 LARS-EN 路径算法。(web.stanford.edu)
缩放与模型选择
由于惩罚作用于系数的大小,预测变量的计量单位会影响结果。特征缩放通常包括中心化和除以标准差,使不同计量单位的特征所受的惩罚更具可比性。标准化改变了施加正则化时所用的坐标体系;拟合后的系数随后可以转换回原始尺度。(github.com)
惩罚参数通常通过交叉验证选择,即比较各组候选参数设置下的预测误差。对于回归问题,均方误差是一种可用的评价指标。ElasticNetCV 等实现可以同时搜索总体惩罚强度和混合比例,再使用完整的训练数据,按选定的参数配置重新拟合。(scikit-learn.org)
评估时必须区分参数选择与泛化(机器学习)能力的衡量。反复利用测试集选择参数,可能导致模型对该测试集过拟合。同样,若用留出观测计算预处理所需的统计量,也会造成数据泄漏(机器学习)。在交叉验证中,应从每个训练折中学习变换,再将其应用于对应的留出折;最终性能评估应与调参分开进行。(github.com)
扩展与术语
弹性网络惩罚并不限于平方误差回归。它也可以与广义线性模型的负对数似然目标函数配合使用,包括逻辑回归和多项逻辑回归。损失函数随响应模型而改变,但系数的组合惩罚项保持不变。(web.stanford.edu)
历史上还有一个与系数重新缩放有关的区别。邹辉和哈斯蒂将直接使用组合惩罚得到的估计量称为朴素弹性网络,并提出在拟合后重新缩放系数,以抵消额外的收缩。许多后来的文献和软件包则将“弹性网络”用于指称上文所示的直接惩罚目标函数,而不进行这项修正。因此,要复现文献报告的拟合结果,必须核对其目标函数、归一化方式、参数定义,以及是否在拟合后进行了重新缩放。(doi.org)
参考来源
- Regularization Paths for Generalized Linear Modelsweb.stanford.edu
- An Introduction to glmnetstat.ethz.ch
- glmnet: vignettes/glmnet.Rmdrdrr.io
- ElasticNetCV — scikit-learn documentationscikit-learn.org
- scikit-learn/doc/modules/preprocessing.rstgithub.com
- scikit-learn/doc/modules/cross_validation.rstgithub.com