lars_path#

sklearn.linear_model.lars_path(X, y, Xy=None, *, Gram=None, max_iter=500, alpha_min=0, method='lar', copy_X=True, eps=np.float64(2.220446049250313e-16), copy_Gram=True, verbose=0, return_path=True, return_n_iter=False, positive=False)[源代码]#

使用LARS算法计算最小角度回归或Lasso路径。

案例方法=' lasso '的优化目标是::

(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1

在方法=' lar '的情况下,目标函数仅以隐式方程的形式已知(参见中的讨论 [1]) .

阅读更多的 User Guide .

参数:
XNone or ndarray of shape (n_samples, n_features)

输入数据。如果X是 None ,奶奶也一定是 None .如果只有克兰矩阵可用,请使用 lars_path_gram 而不是.

y无或形状的nd数组(n_samples,)

输入目标。

Xy形状类似阵列(n_features,),默认=无

Xy = X.T @ y 这可以预先计算。只有在预先计算Gram矩阵时,它才有用。

Gram无、“自动”、布尔、形状的nd数组(n_features,n_features)、 默认值=无

预先计算的格拉姆矩阵 X.T @ X ,如果 'auto' ,如果样本多于特征,则根据给定X预先计算Gram矩阵。

max_iterint,默认=500

要执行的最大迭代次数,设置为无限大表示没有限制。

alpha_minfloat,默认=0

沿着路径的最小相关性。它对应于正规化参数 alpha 在套索中。

method' lar ',',默认=' lar '

Specifies the returned model. Select 'lar' for Least Angle Regression, 'lasso' for the Lasso.

copy_X布尔,默认=True

如果 False , X 已被覆盖。

epsfloat,default=np.finfo(float).eps

Cholesky对角线因子计算中的机器精度正规化。对于条件非常恶劣的系统,请增加这一比例。不像 tol 在某些基于迭代优化的算法中,该参数不控制优化的容差。

copy_Gram布尔,默认=True

如果 False , Gram 已被覆盖。

verboseint,默认=0

控制输出冗长。

return_path布尔,默认=True

如果 True ,返回整个路径,否则仅返回路径的最后一点。

return_n_iter布尔,默认=假

是否返回迭代次数。

positive布尔,默认=假

将系数限制为>= 0。此选项仅允许使用方法“lasso”。请注意,对于较小的阿尔法值,模型系数不会收敛到普通最小平方解。仅限最小Alpha值的系数 (alphas_[alphas_  > 0.]。逐步Lars-Lasso算法达到的min()'当fit_路径=True时)通常与坐标下降的解一致  `lasso_path 功能

返回:
alphas形状的nd数组(n_alphas + 1,)

每次迭代时协方差的最大值(绝对值)。 n_alphas 要么是 max_iter , n_features ,或路径中的节点数 alpha >= alpha_min ,以较小者为准。

active形状的nd数组(n_alphas,)

路径结束处活动变量的索引。

coefs形状nd数组(n_features,n_alphas + 1)

沿着路径的系数。

n_iterint

运行的迭代次数。只有在以下情况下才返回 return_n_iter 设置为True。

参见

lars_path_gram

在充分统计数据模式下计算LARS路径。

lasso_path

使用坐标下降计算Lasso路径。

LassoLars

Lasso模型与最小角度回归(又名最小角度回归)进行匹配拉斯。

Lars

最小角度回归模型,又名拉尔。

LassoLarsCV

使用LARS算法交叉验证Lasso。

LarsCV

交叉验证的最小角回归模型。

sklearn.decomposition.sparse_encode

稀疏编码。

引用

[1]

“最小角度回归”,Efron等人。http://statweb.stanford.edu/~tibs/ftp/lars.pdf

[2]

Wikipedia entry on the Least-angle regression <https://en.wikipedia.org/wiki/Least-angle_regression> _

[3]

Wikipedia entry on the Lasso <https://en.wikipedia.org/wiki/Lasso_(statistics)> _

示例

>>> from sklearn.linear_model import lars_path
>>> from sklearn.datasets import make_regression
>>> X, y, true_coef = make_regression(
...    n_samples=100, n_features=5, n_informative=2, coef=True, random_state=0
... )
>>> true_coef
array([ 0.        ,  0.        ,  0.        , 97.9..., 45.7...])
>>> alphas, _, estimated_coef = lars_path(X, y)
>>> alphas.shape
(3,)
>>> estimated_coef
array([[ 0.     ,  0.     ,  0.     ],
       [ 0.     ,  0.     ,  0.     ],
       [ 0.     ,  0.     ,  0.     ],
       [ 0.     , 46.96..., 97.99...],
       [ 0.     ,  0.     , 45.70...]])