lars_path (original) (raw)
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]#
Compute Least Angle Regression or Lasso path using the LARS algorithm.
The optimization objective for the case method=’lasso’ is:
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
in the case of method=’lar’, the objective function is only known in the form of an implicit equation (see discussion in [1]).
Read more in the User Guide.
Parameters:
XNone or ndarray of shape (n_samples, n_features)
Input data. If X is None
, Gram must also be None
. If only the Gram matrix is available, use lars_path_gram
instead.
yNone or ndarray of shape (n_samples,)
Input targets.
Xyarray-like of shape (n_features,), default=None
Xy = X.T @ y
that can be precomputed. It is useful only when the Gram matrix is precomputed.
GramNone, ‘auto’, bool, ndarray of shape (n_features, n_features), default=None
Precomputed Gram matrix X.T @ X
, if 'auto'
, the Gram matrix is precomputed from the given X, if there are more samples than features.
max_iterint, default=500
Maximum number of iterations to perform, set to infinity for no limit.
alpha_minfloat, default=0
Minimum correlation along the path. It corresponds to the regularization parameter alpha
in the Lasso.
method{‘lar’, ‘lasso’}, default=’lar’
Specifies the returned model. Select 'lar'
for Least Angle Regression, 'lasso'
for the Lasso.
copy_Xbool, default=True
If False
, X
is overwritten.
epsfloat, default=np.finfo(float).eps
The machine-precision regularization in the computation of the Cholesky diagonal factors. Increase this for very ill-conditioned systems. Unlike the tol
parameter in some iterative optimization-based algorithms, this parameter does not control the tolerance of the optimization.
copy_Grambool, default=True
If False
, Gram
is overwritten.
verboseint, default=0
Controls output verbosity.
return_pathbool, default=True
If True
, returns the entire path, else returns only the last point of the path.
return_n_iterbool, default=False
Whether to return the number of iterations.
positivebool, default=False
Restrict coefficients to be >= 0. This option is only allowed with method ‘lasso’. Note that the model coefficients will not converge to the ordinary-least-squares solution for small values of alpha. Only coefficients up to the smallest alpha value (alphas_[alphas_ > 0.].min()
when fit_path=True) reached by the stepwise Lars-Lasso algorithm are typically in congruence with the solution of the coordinate descent lasso_path
function.
Returns:
alphasndarray of shape (n_alphas + 1,)
Maximum of covariances (in absolute value) at each iteration.n_alphas
is either max_iter
, n_features
, or the number of nodes in the path with alpha >= alpha_min
, whichever is smaller.
activendarray of shape (n_alphas,)
Indices of active variables at the end of the path.
coefsndarray of shape (n_features, n_alphas + 1)
Coefficients along the path.
n_iterint
Number of iterations run. Returned only if return_n_iter
is set to True.
References
Examples
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...]])