Lasso
是估计稀疏系数的线性模型. 在某些场景下适用,因为它倾向于使用具有较少参数值的解决方案, 有效减少给定解所依赖的变量数. 为此,Lasso 及其变体是 compressed sensing ( 压缩感知领域 ) 的基础. 在某些条件下,它可以恢复精确的非零权重集(参见 Compressive sensing: tomography reconstruction with L1 prior (Lasso))( 压缩感测:使用 L1 先验( Lasso )进行断层扫描重建 ) ).
在数学上,它由使用 先验作为正则化项训练的线性模型组成. 需最小化的目标函数是::
lasso估计解决了带 罚项的最小二乘的最小化。其中, 是常数, 是参数向量的 -范数 .
Lasso
的类实现使用坐标下降算法来拟合系数。另一个实现详见 Least Angle Regression ( 最小角度回归 ):
>>> from sklearn import linear_model
>>> reg = linear_model.Lasso(alpha = 0.1)
>>> reg.fit([[0, 0], [1, 1]], [0, 1])
Lasso(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=1000,
normalize=False, positive=False, precompute=False, random_state=None,
selection='cyclic', tol=0.0001, warm_start=False)
>>> reg.predict([[1, 1]])
array([ 0.8])
对于较低级别的任务也很有用的是函数 lasso_path
来计算所有可能的系数值。
示例:
- Lasso and Elastic Net for Sparse Signals ( 稀疏信号的套索和弹性网 )
- Compressive sensing: tomography reconstruction with L1 prior (Lasso)( 压缩感知:L1 先验( Lasso )的断层扫描重建 )
注意
Feature selection with Lasso ( 功能套索和弹性网 )
由于 Lasso 回归生成稀疏模型, 因此可以用于进行特征选择, 详见 L1-based feature selection.
Setting regularization parameter ( 设置正则化参数 )
alpha 参数控制估计系数的稀疏程度.
Using cross-validation ( 使用交叉验证 )
scikit-learn 通过交叉验证设置alpha 参数的对象有:LassoCV
and LassoLarsCV
.
LassoLarsCV
是基于下面的 Least Angle Regression( 最小角度回归 ) 算法.
对高维数据集而言,在众多共线性回归器中,LassoCV
是通常的选择. 然而, LassoLarsCV
的优点在于能探索更加相关的alpha 参数值。如果样本数量相对于特征数而言非常少,那么它通常比LassoCV更快。
Information-criteria based model selection ( 基于信息标准的模型选择 )
Alternatively, 估计器 LassoLarsIC
建议使用 Akaike information criterion (Akaike 信息准则)(AIC) 和 Bayes Information criterion(贝叶斯信息准则) (BIC). 对比 k-fold 交叉验证,这是一种计算开销更低的替代方法,因为只需在正则化路径计算一次而不是 k + 1 次来找到alpha 的最优解. 然而这种准则需要对解的自由度有合适的估计,由大样本导出(渐进结果)并假设模型是正确的,即数据实际上是由该模型生成的。当问题不能很好的满足这些条件(特征数比样本数多),这种准则就会打破。
Examples:
与 SVM 的正则化参数的比较
alpha
和 SVM 的正则化参数 C 的等价关系是: alpha = 1 / C
或者 alpha = 1 / (n_samples * C)
, 依赖于估计器和模型优化的确切目标函数。
参考: