Lasso

1. 简介

Lasso是一个线性模型,可用于估计稀疏系数,能够确定具有较少非零系数的解,因此适用于特征数量较少的问题。Lasso模型及其变体是压缩感知领域的基础(参考:Compressive sensing: tomography reconstruction with L1 prior (Lasso)

Lasso的模型表达式由一个线性模型和一个附加的正则项组成,目标函数为:

\min_{w} { \frac{1}{2n_{\text{samples}}} ||X w - y||_2 ^ 2 + \alpha ||w||_1}

其中,\alpha是常数,||w||_1是系数向量的\ell_1范数。

Lasso模型拟合系数的优化算法是坐标下降法(coordinate descent)。

模型实现:

>>> from sklearn import linear_model
>>> reg = linear_model.Lasso(alpha=0.1)
>>> reg.fit([[0, 0], [1, 1]], [0, 1])
Lasso(alpha=0.1)
>>> reg.predict([[1, 1]])
array([0.8])

lasso_path函数可以沿着可能值的全路径计算系数,因此适用于lower-lever的任务。

  • 注:由于Lasso回归能够得到稀疏模型,因此可以使用Lasso模型进行特征选择(参考:L1-based feature selection)。

2. 正则参数设置

正则参数\alpha控制估计系数的稀疏程度。

2.1 交叉验证

sklearn提供了用于设置Lasso模型的\alpha参数的交叉验证方法:LassoCVLassoLarsCVLassoLarsCV是基于Least Angle Regression

LassoCV更适用于具有许多共线性特征的高维数据集;

LassoLarsCV可以探索更相关的\alpha参数值,并且如果样本数量与特征数量相比非常少,LassoLarsCV通常比LassoCV更快。

2.2 基于信息准则的模型选择

LassoLarsIC使用的信息准则:Akaike information criterion (AIC)、Bayes Information criterion (BIC)

由于使用k折交叉验证时仅对正则化路径进行一次计算而不是k + 1次计算,因此找到alpha的最优值计算量更小。但是,这样的准则需要对解的自由度进行适当的估计,是针对大样本(渐近结果)得出的,并且假定模型是正确的,即数据实际上是由该模型生成的。当特征数量多于样本数量时不适用。

2.3 与SVM的正则参数C的比较

\alpha与C的关系:\alpha C或\alpha (n_samples C),取决于估计量和模型优化的目标函数。

posted @ 2020-03-13 15:28  雁过无声,风过无痕  阅读(759)  评论(0)    收藏  举报