机器学习实践之scikit-learn:Lasso 回归

 Lasso 是估计稀疏系数的线性模型. 在某些场景下适用,因为它倾向于使用具有较少参数值的解决方案, 有效减少给定解所依赖的变量数. 为此,Lasso 及其变体是 compressed sensing ( 压缩感知领域 ) 的基础. 在某些条件下,它可以恢复精确的非零权重集(参见 Compressive sensing: tomography reconstruction with L1 prior (Lasso))( 压缩感测:使用 L1 先验( Lasso )进行断层扫描重建 ) ).

在数学上,它由使用 \ell_1  先验作为正则化项训练的线性模型组成. 需最小化的目标函数是::

\underset{w}{min\,} { \frac{1}{2n_{samples}} ||X w - y||_2 ^ 2 + \alpha ||w||_1}

lasso估计解决了带 \alpha ||w||_1 罚项的最小二乘的最小化。其中,\alpha 是常数,||w||_1 是参数向量的  \ell_1-范数 .

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  来计算所有可能的系数值。

示例:

注意

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更快。

lasso_cv_1 lasso_cv_2

Information-criteria based model selection ( 基于信息标准的模型选择 )

Alternatively, 估计器 LassoLarsIC 建议使用 Akaike information criterion (Akaike 信息准则)(AIC) 和 Bayes Information criterion(贝叶斯信息准则) (BIC). 对比 k-fold 交叉验证,这是一种计算开销更低的替代方法,因为只需在正则化路径计算一次而不是 k + 1 次来找到alpha 的最优解. 然而这种准则需要对解的自由度有合适的估计,由大样本导出(渐进结果)并假设模型是正确的,即数据实际上是由该模型生成的。当问题不能很好的满足这些条件(特征数比样本数多),这种准则就会打破。

../_images/sphx_glr_plot_lasso_model_selection_0011.png

Examples:

与 SVM 的正则化参数的比较

alpha 和 SVM 的正则化参数 C 的等价关系是: alpha = 1 / C 或者 alpha = 1 / (n_samples * C), 依赖于估计器和模型优化的确切目标函数。

 

参考:

scikit-learn 0.19 文档

scikit-learn 0.18 中文文档

Scikit-learn 0.19.x 中文文档

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值