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)[source]#

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

这是一种使用 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.

precomputebool, 'auto' or array-like, default='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_pathbool, default=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 估计器的解一致。

jitterfloat, default=None

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

0.23 版本新增。

random_stateint, RandomState instance or None, default=None

确定抖动的随机数生成。传入一个 int 以在多次函数调用中获得可重现的输出。请参阅 词汇表。如果 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_float 或形状为 (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)[source]#

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()[source]#

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

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

返回:
routingMetadataRequest

封装路由信息的 MetadataRequest

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 期望值(不考虑输入特征)的常数模型将获得 \(R^2\) 得分 0.0。

参数:
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[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$') LassoLars[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

更新后的对象。