最小角回归路径#
- 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)[source]#
- 使用LARS算法计算最小角回归或Lasso路径。 - 当method='lasso'时,优化目标为 - (1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1 - 当method='lar'时,目标函数只以隐式方程的形式已知(参见[1]中的讨论)。 - 更多信息请参见用户指南。 - 参数:
- XNone 或 shape 为 (n_samples, n_features) 的 ndarray
- 输入数据。如果 X 为 - None,Gram 也必须为- None。如果只有 Gram 矩阵可用,请改用- lars_path_gram。
- yNone 或 shape 为 (n_samples,) 的 ndarray
- 输入目标。 
- Xyshape 为 (n_features,) 的 array-like,默认为 None
- Xy = X.T @ y可以预先计算。只有在 Gram 矩阵预先计算的情况下才有用。
- GramNone, ‘auto’, bool, shape 为 (n_features, n_features) 的 ndarray,默认为 None
- 预先计算的 Gram 矩阵 - X.T @ X,如果为- 'auto',则从给定的 X 预先计算 Gram 矩阵,前提是样本数大于特征数。
- max_iterint,默认为 500
- 要执行的最大迭代次数,设置为无穷大表示无限制。 
- alpha_minfloat,默认为 0
- 路径上的最小相关性。它对应于 Lasso 中的正则化参数 - alpha。
- method{'lar', 'lasso'},默认为 'lar'
- 指定返回的模型。选择 - 'lar'表示最小角回归,- 'lasso'表示 Lasso。
- copy_Xbool,默认为 True
- 如果为 - False,则会覆盖- X。
- epsfloat,默认为 np.finfo(float).eps
- 计算 Cholesky 对角因子时的机器精度正则化。对于病态系统,请增加此值。与某些基于迭代优化的算法中的 - tol参数不同,此参数不控制优化的容差。
- copy_Grambool,默认为 True
- 如果为 - False,则会覆盖- Gram。
- verboseint,默认为 0
- 控制输出详细程度。 
- return_pathbool,默认为 True
- 如果为 - True,则返回整个路径,否则只返回路径的最后一个点。
- return_n_iterbool,默认为 False
- 是否返回迭代次数。 
- positivebool,默认为 False
- 将系数限制为 >= 0。此选项仅允许使用 method 'lasso'。请注意,对于较小的 alpha 值,模型系数不会收敛到普通最小二乘解。逐步 Lars-Lasso 算法达到的最小 alpha 值(当 fit_path=True 时为 - alphas_[alphas_ > 0.].min())之前的系数通常与坐标下降- lasso_path函数的解一致。
 
- 返回值:
- alphasshape 为 (n_alphas + 1,) 的 ndarray
- 每次迭代时协方差的最大值(绝对值)。 - n_alphas要么是- max_iter、- n_features,要么是路径中- alpha >= alpha_min的节点数,取较小者。
- activeshape 为 (n_alphas,) 的 ndarray
- 路径结束时活动变量的索引。 
- coefsshape 为 (n_features, n_alphas + 1) 的 ndarray
- 路径上的系数。 
- n_iterint
- 运行的迭代次数。仅当 - return_n_iter设置为 True 时返回。
 
 - 另请参见 - lars_path_gram
- 在充分统计模式下计算LARS路径。 
- lasso_path
- 使用坐标下降法计算Lasso路径。 
- LassoLars
- 使用最小角回归(也称为Lars)拟合Lasso模型。 
- Lars
- 最小角回归模型(也称为LAR)。 
- LassoLarsCV
- 使用LARS算法进行交叉验证的Lasso。 
- LarsCV
- 交叉验证的最小角回归模型。 
- sklearn.decomposition.sparse_encode
- 稀疏编码。 
 - 参考文献 - 示例 - >>> 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...]]) 
 
    