LassoLars#

class sklearn.linear_model.LassoLars(alpha=1.0, *, fit_intercept=True, verbose=False, precompute='auto', max_iter=500, eps=np.float64(2.220446049250313e-16), copy_X=True, fit_path=True, positive=False, jitter=None, random_state=None)[源]#

用最小角回归拟合的 Lasso 模型,即 Lars。

它是一个线性模型,使用L1先验作为正则化项进行训练。

The optimization objective for Lasso is

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

Read more in the User Guide.

参数:
alphafloat, default=1.0

乘以惩罚项的常数。默认为1.0。alpha = 0等同于普通最小二乘法,由LinearRegression解决。出于数值原因,不建议在LassoLars对象中使用alpha = 0,而应优先使用LinearRegression对象。

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.

precompute布尔值、'auto' 或 类似数组, 默认为 'auto'

是否使用预计算的Gram矩阵来加快计算速度。如果设置为'auto',则由我们决定。Gram矩阵也可以作为参数传入。

max_iterint, default=500

要执行的最大迭代次数。

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 将被复制;否则,它可能会被覆盖。

fit_path布尔值, 默认为 True

如果为True,则完整的路径会存储在coef_path_属性中。如果计算一个大问题或许多目标,将fit_path设置为False将加快速度,尤其是在alpha较小的情况下。

positivebool, default=False

将系数限制为 >= 0。请注意,您可能希望移除默认设置为True的fit_intercept。在正向限制下,模型系数不会收敛到普通最小二乘解,即使alpha值很小。只有通过逐步Lars-Lasso算法达到的最小alpha值(当fit_path=True时为alphas_[alphas_ > 0.].min())之前的系数通常与坐标下降Lasso估计器的解一致。

jitter浮点数, 默认为 None

要添加到y值中的均匀噪声参数的上限,以满足模型一次一个计算的假设。可能有助于提高稳定性。

0.23 版本新增。

random_stateint, RandomState instance or None, default=None

确定抖动(jittering)的随机数生成。传入一个整数以在多次函数调用中获得可重现的输出。请参阅术语表。如果jitter为None,则忽略。

0.23 版本新增。

属性:
alphas_array-like of shape (n_alphas + 1,) or list of such arrays

每次迭代中协方差的最大值(绝对值)。n_alphasmax_itern_features或路径中alpha >= alpha_min的节点数,取其中较小者。如果这是一个类似数组的列表,则外部列表的长度为n_targets

active_长度为 n_alphas 的列表,或此类列表的列表

路径末端活动变量的索引。如果这是一个列表的列表,则外部列表的长度为n_targets

coef_path_形状为 (n_features, n_alphas + 1) 的类似数组,或此类数组的列表

如果传入列表,则预期为n_targets个此类数组之一。沿路径变化的系数。如果fit_path参数为False,则不显示此属性。如果这是一个类似数组的列表,则外部列表的长度为n_targets

coef_形状为 (n_features,) 或 (n_targets, n_features) 的类似数组

参数向量(公式中的 w)。

intercept_浮点数或形状为 (n_targets,) 的类似数组

决策函数中的独立项。

n_iter_array-like or int

lars_path为每个目标找到alpha网格所花费的迭代次数。

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 线性模型。

LassoLarsCV

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

LassoLarsIC

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

sklearn.decomposition.sparse_encode

稀疏编码。

示例

>>> from sklearn import linear_model
>>> reg = linear_model.LassoLars(alpha=0.01)
>>> reg.fit([[-1, 1], [0, 0], [1, 1]], [-1, 0, -1])
LassoLars(alpha=0.01)
>>> print(reg.coef_)
[ 0.         -0.955]
fit(X, y, Xy=None)[源]#

Fit the model using X, y as training data.

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

训练数据。

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

目标值。

Xyarray-like of shape (n_features,) or (n_features, n_targets), default=None

可以预计算的Xy = np.dot(X.T, y)。仅当Gram矩阵预计算时有用。

返回:
selfobject

Returns an instance of self.

get_metadata_routing()[源]#

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

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

返回:
routingMetadataRequest

封装路由信息的 MetadataRequest

get_params(deep=True)[源]#

获取此估计器的参数。

参数:
deepbool, default=True

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

返回:
paramsdict

参数名称映射到其值。

predict(X)[源]#

使用线性模型进行预测。

参数:
X形状为 (n_samples, n_features) 的类数组或稀疏矩阵

样本。

返回:
C形状为 (n_samples,) 或 (n_samples, n_outputs) 的 ndarray

预测值。

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

返回测试数据的 决定系数

决定系数 \(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$') LassoLars[源]#

配置是否应请求元数据以传递给 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)[源]#

设置此估计器的参数。

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

参数:
**paramsdict

估计器参数。

返回:
selfestimator instance

估计器实例。

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

配置是否应请求元数据以传递给 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

更新后的对象。