LASSO(L1 正则化)

嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一优化过程中完成。

给定数据集,其中
简单的线性回归模型优化目标为

当样本特征很多,而样本数较少,容易过拟合,为缓解此问题,引入正则化项,正则化参数

  • 范数正则化,LASSO(Least Absolute Shrinkage and Selection Operator):

  • 范数正则化,岭回归(ridge regression):

范数和范数正则化都有助于降低过拟合风险,前者比后者更容易获得稀疏解,求得有更少的非零分量。

从图中可以看出,采用范数时平方误差项等值线与正则化项等值线的交点常出现在坐标轴上,而采用交点落于某一象限中。

正则化求解

正则化求解采用近端梯度下降(Proximal Gradient Descent, PGD)

表示微分算子,对优化目标

可导,且满足-Lipschitz条件,则在附近

再考虑正则化项,于是进一步的梯度下降迭代为

Python code

1
2
3
4
5
6
7
from sklearn.linear_model import LassoCV
from sklearn.datasets import make_regression
X, y = make_regression(noise=4, random_state=0)
reg = LassoCV(cv=5, random_state=0).fit(X, y)
reg.score(X, y)

reg.predict(X[:1,])

https://scikit-learn.org/stable/modules/linear_model.html#lasso

https://scikit-learn.org/stable/auto_examples/ensemble/plot_stack_predictors.html#sphx-glr-auto-examples-ensemble-plot-stack-predictors-py