LassoLarsCV#

class sklearn.linear_model.LassoLarsCV(*, fit_intercept=True, verbose=False, max_iter=500, precompute='auto', cv=None, max_n_alphas=1000, n_jobs=None, eps=np.float64(2.220446049250313e-16), copy_X=True, positive=False)[source]#

使用 LARS 算法的交叉验证 Lasso。

参见词汇表条目 交叉验证估计器

The optimization objective for Lasso is

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

Read more in the User Guide.

参数:
fit_interceptbool, default=True

Whether to calculate the intercept for this model. If set to false, no intercept will be used in calculations (i.e. data is expected to be centered).

verbosebool or int, default=False

Sets the verbosity amount.

max_iterint, default=500

要执行的最大迭代次数。

precomputebool 或 ‘auto’,默认值为 ‘auto’

是否使用预计算的 Gram 矩阵以加速计算。如果设置为 'auto',则由我们决定。Gram 矩阵不能作为参数传递,因为我们只使用 X 的子集。

cvint, cross-validation generator or an iterable, default=None

确定交叉验证拆分策略。cv 的可能输入包括

  • None,使用默认的 5 折交叉验证,

  • 整数,指定折数。

  • CV 分割器,

  • 一个可迭代对象,产生索引数组形式的 (训练集, 测试集) 拆分。

For integer/None inputs, KFold is used.

有关此处可使用的各种交叉验证策略,请参阅 用户指南

版本 0.22 中已更改:如果为 None,cv 默认值从 3 折更改为 5 折。

max_n_alphasint, 默认值为 1000

用于计算交叉验证中残差的路径上的最大点数。

n_jobsint or None, default=None

Number of CPUs to use during the cross validation. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors. See Glossary for more details.

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_Xbool, default=True

如果为 True,X 将被复制;否则,它可能会被覆盖。

positivebool, default=False

将系数限制为 >= 0。请注意,您可能希望移除默认设置为 True 的 fit_intercept。在正向限制下,模型系数不会收敛到小 alpha 值时的普通最小二乘解。只有逐步 Lars-Lasso 算法达到的最小 alpha 值(当 fit_path=True 时为 alphas_[alphas_ > 0.].min())的系数通常与坐标下降 Lasso 估计器的解一致。因此,LassoLarsCV 仅适用于预期和/或达到稀疏解的问题。

属性:
coef_array-like of shape (n_features,)

parameter vector (w in the formulation formula)

intercept_float

决策函数中的独立项。

coef_path_形状为 (n_features, n_alphas) 的类数组

路径上系数的不同值

alpha_float

估计的正则化参数 alpha

alphas_形状为 (n_alphas,) 的类数组

路径上 alpha 的不同值

cv_alphas_形状为 (n_cv_alphas,) 的类数组

不同折叠路径上所有 alpha 值

mse_path_形状为 (n_folds, n_cv_alphas) 的类数组

沿路径(alpha 值由 cv_alphas 给出)每个折叠的平均平方误差

n_iter_array-like or int

Lars 在最优 alpha 下运行的迭代次数。

active_int 列表

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

n_features_in_int

拟合 期间看到的特征数。

0.24 版本新增。

feature_names_in_shape 为 (n_features_in_,) 的 ndarray

fit 期间看到的特征名称。仅当 X 具有全部为字符串的特征名称时才定义。

1.0 版本新增。

另请参阅

lars_path

Compute Least Angle Regression or Lasso path using LARS algorithm.

lasso_path

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

Lasso

使用 L1 先验作为正则化项训练的线性模型(又名 Lasso)。

LassoCV

具有沿正则化路径迭代拟合的 Lasso 线性模型。

LassoLars

使用最小角回归(又名 Lars)拟合的 Lasso 模型。

LassoLarsIC

使用 BIC 或 AIC 进行模型选择的 Lars 拟合 Lasso 模型。

sklearn.decomposition.sparse_encode

稀疏编码。

注意事项

该对象解决与 LassoCV 对象相同的问题。但是,与 LassoCV 不同,它会自行找到相关的 alpha 值。通常,由于此特性,它会更稳定。但是,它对高度多重共线性数据集更为脆弱。

如果与特征总数相比只选择了少量特征,例如样本数量与特征数量相比非常少,则它比 LassoCV 更高效。

In fit, once the best parameter alpha is found through cross-validation, the model is fit again using the entire training set.

示例

>>> from sklearn.linear_model import LassoLarsCV
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(noise=4.0, random_state=0)
>>> reg = LassoLarsCV(cv=5).fit(X, y)
>>> reg.score(X, y)
0.9993
>>> reg.alpha_
np.float64(0.3972)
>>> reg.predict(X[:1,])
array([-78.4831])
fit(X, y, **params)[source]#

Fit the model using X, y as training data.

参数:
Xshape 为 (n_samples, n_features) 的 array-like

训练数据。

yarray-like of shape (n_samples,)

目标值。

**paramsdict, default=None

Parameters to be passed to the CV splitter.

Added in version 1.4: Only available if enable_metadata_routing=True, which can be set by using sklearn.set_config(enable_metadata_routing=True). See Metadata Routing User Guide for more details.

返回:
selfobject

Returns an instance of self.

get_metadata_routing()[source]#

获取此对象的元数据路由。

请查阅 用户指南,了解路由机制如何工作。

1.4 版本新增。

返回:
routingMetadataRouter

封装路由信息的 MetadataRouter

get_params(deep=True)[source]#

获取此估计器的参数。

参数:
deepbool, default=True

如果为 True,将返回此估计器以及包含的子对象(如果它们是估计器)的参数。

返回:
paramsdict

参数名称映射到其值。

predict(X)[source]#

使用线性模型进行预测。

参数:
Xarray-like or sparse matrix, shape (n_samples, n_features)

样本。

返回:
Carray, shape (n_samples,)

返回预测值。

score(X, y, sample_weight=None)[source]#

返回测试数据的 决定系数

决定系数 \(R^2\) 定义为 \((1 - \frac{u}{v})\),其中 \(u\) 是残差平方和 ((y_true - y_pred)** 2).sum()\(v\) 是总平方和 ((y_true - y_true.mean()) ** 2).sum()。最佳分数是 1.0,并且可能为负(因为模型可能会任意差)。一个总是预测 y 期望值(不考虑输入特征)的常数模型将获得 0.0 的 \(R^2\) 分数。

参数:
Xshape 为 (n_samples, n_features) 的 array-like

测试样本。对于某些估计器,这可能是一个预先计算的核矩阵或一个通用对象列表,形状为 (n_samples, n_samples_fitted),其中 n_samples_fitted 是用于估计器拟合的样本数。

yshape 为 (n_samples,) 或 (n_samples, n_outputs) 的 array-like

X 的真实值。

sample_weightshape 为 (n_samples,) 的 array-like, default=None

样本权重。

返回:
scorefloat

self.predict(X) 相对于 y\(R^2\)

注意事项

从版本 0.23 开始,在对回归器调用 score 时使用的 \(R^2\) 分数使用 multioutput='uniform_average',以与 r2_score 的默认值保持一致。这会影响所有多输出回归器(除了 MultiOutputRegressor)的 score 方法。

set_fit_request(*, Xy: bool | None | str = '$UNCHANGED$') LassoLarsCV[source]#

配置是否应请求元数据以传递给 fit 方法。

请注意,此方法仅在以下情况下相关:此估计器用作 元估计器 中的子估计器,并且通过 enable_metadata_routing=True 启用了元数据路由(请参阅 sklearn.set_config)。请查看 用户指南 以了解路由机制的工作原理。

每个参数的选项如下:

  • True:请求元数据,如果提供则传递给 fit。如果未提供元数据,则忽略该请求。

  • False:不请求元数据,元估计器不会将其传递给 fit

  • None:不请求元数据,如果用户提供元数据,元估计器将引发错误。

  • str:应将元数据以给定别名而不是原始名称传递给元估计器。

默认值 (sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求而不更改其他参数。

在版本 1.3 中新增。

参数:
Xystr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for Xy parameter in fit.

返回:
selfobject

更新后的对象。

set_params(**params)[source]#

设置此估计器的参数。

此方法适用于简单的估计器以及嵌套对象(如 Pipeline)。后者具有 <component>__<parameter> 形式的参数,以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计器参数。

返回:
selfestimator instance

估计器实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LassoLarsCV[source]#

配置是否应请求元数据以传递给 score 方法。

请注意,此方法仅在以下情况下相关:此估计器用作 元估计器 中的子估计器,并且通过 enable_metadata_routing=True 启用了元数据路由(请参阅 sklearn.set_config)。请查看 用户指南 以了解路由机制的工作原理。

每个参数的选项如下:

  • True:请求元数据,如果提供则传递给 score。如果未提供元数据,则忽略该请求。

  • False:不请求元数据,元估计器不会将其传递给 score

  • None:不请求元数据,如果用户提供元数据,元估计器将引发错误。

  • str:应将元数据以给定别名而不是原始名称传递给元估计器。

默认值 (sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求而不更改其他参数。

在版本 1.3 中新增。

参数:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

score 方法中 sample_weight 参数的元数据路由。

返回:
selfobject

更新后的对象。