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参数的交叉验证方法:LassoCV和LassoLarsCV。LassoLarsCV是基于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 = 1 / C或\alpha = 1 / (n_samples * C),取决于估计量和模型优化的目标函数。

浙公网安备 33010602011771号