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...]])