TweedieRegressor#

class sklearn.linear_model.TweedieRegressor(*, power=0.0, alpha=1.0, fit_intercept=True, link='auto', solver='lbfgs', max_iter=100, tol=0.0001, warm_start=False, verbose=0)#

广义线性模型与Tweedie分布。

该估计器可以根据 power 参数的不同来建模不同的GLM,该参数决定了基础分布。

更多信息请参阅 用户指南

Added in version 0.23.

Parameters:
powerfloat, default=0

该参数决定了目标分布,具体如下表所示:

Power

Distribution

0

正态分布

1

泊松分布

(1,2)

复合泊松伽玛分布

2

伽玛分布

3

逆高斯分布

对于 0 < power < 1 ,不存在分布。

alphafloat, default=1

常数,乘以L2惩罚项并确定正则化强度。 alpha = 0 相当于未惩罚的GLM。在这种情况下,设计矩阵 X 必须具有完整的列秩(无共线性)。 alpha 的值必须在 [0.0, inf) 范围内。

fit_interceptbool, default=True

指定是否应将常数(即偏差或截距)添加到线性预测器( X @ coef + intercept )。

link{‘auto’, ‘identity’, ‘log’}, default=’auto’

GLM的链接函数,即从线性预测器 X @ coeff + intercept 到预测 y_pred 的映射。选项 ‘auto’ 根据所选的 power 参数设置链接函数,如下所示:

  • ‘identity’ 用于 power <= 0 ,例如正态分布

  • ‘log’ 用于 power > 0 ,例如泊松分布、伽玛分布和逆高斯分布

solver{‘lbfgs’, ‘newton-cholesky’}, default=’lbfgs’

优化问题中使用的算法:

‘lbfgs’

调用scipy的L-BFGS-B优化器。

‘newton-cholesky’

使用牛顿-拉夫森步骤(在任意精度算术中等效于迭代加权最小二乘法)与内部基于Cholesky的求解器。该求解器是 n_samples >> n_features 时的良好选择,特别是对于具有罕见类别的一热编码分类特征。请注意,此求解器的内存使用量与 n_features 具有二次依赖关系,因为它显式计算Hessian矩阵。

Added in version 1.2.

max_iterint, default=100

求解器的最大迭代次数。 值必须在 [1, inf) 范围内。

tolfloat, default=1e-4

停止标准。对于lbfgs求解器, 当 max{|g_j|, j = 1, ..., d} <= tol 时迭代将停止, 其中 g_j 是目标函数梯度(导数)的第j个分量。 值必须在 (0.0, inf) 范围内。

warm_startbool, default=False

如果设置为 True ,则重用上一次调用 fit 的解作为 coef_intercept_ 的初始化。

verboseint, default=0

对于lbfgs求解器,设置任何正数以启用详细输出。 值必须在 [0, inf) 范围内。

Attributes:
coef_array of shape (n_features,)

在GLM中为线性预测器( X @ coef_ + intercept_ )估计的系数。

intercept_float

添加到线性预测器的截距(即偏差)。

n_iter_int

求解器实际使用的迭代次数。

n_features_in_int

fit 期间看到的特征数量。

Added in version 0.24.

feature_names_in_ndarray of shape ( n_features_in_ ,)

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

Added in version 1.0.

See also

PoissonRegressor

具有泊松分布的广义线性模型。

GammaRegressor

具有伽玛分布的广义线性模型。

Examples

>>> from sklearn import linear_model
>>> clf = linear_model.TweedieRegressor()
>>> X = [[1, 2], [2, 3], [3, 4], [4, 3]]
>>> y = [2, 3.5, 5, 5.5]
>>> clf.fit(X, y)
TweedieRegressor()
>>> clf.score(X, y)
0.839...
>>> clf.coef_
array([0.599..., 0.299...])
>>> clf.intercept_
1.600...
>>> clf.predict([[1, 1], [3, 4]])
array([2.500..., 4.599...])
fit(X, y, sample_weight=None)#

拟合广义线性模型。

Parameters:
X{array-like, sparse matrix},形状为 (n_samples, n_features)

训练数据。

yarray-like,形状为 (n_samples,)

目标值。

sample_weightarray-like,形状为 (n_samples,),默认=None

样本权重。

Returns:
selfobject

拟合的模型。

get_metadata_routing()#

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

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

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

Returns:
paramsdict

参数名称映射到它们的值。

predict(X)#

使用带有特征矩阵X的GLM进行预测。

Parameters:
X{array-like, sparse matrix},形状为 (n_samples, n_features)

样本。

Returns:
y_pred形状为 (n_samples,) 的数组

返回预测值。

score(X, y, sample_weight=None)#

计算 D^2,即解释的偏差百分比。

D^2 是决定系数 R^2 的推广。R^2 使用平方误差,而 D^2 使用此 GLM 的偏差,详见 用户指南

D^2 定义为 \(D^2 = 1- rac{D(y_{true},y_{pred})}{D_{null}}\)\(D_{null}\) 是空偏差,即仅包含截距的模型的偏差,对应于 \(y_{pred} = ar{y}\) 。 均值 \(ar{y}\) 通过 sample_weight 进行平均。 最佳得分是 1.0,也可能为负(因为模型可能任意糟糕)。

Parameters:
X{array-like, sparse matrix},形状 (n_samples, n_features)

测试样本。

yarray-like,形状 (n_samples,)

目标的真实值。

sample_weightarray-like,形状 (n_samples,),默认=None

样本权重。

Returns:
scorefloat

self.predict(X) 相对于 y 的 D^2。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') TweedieRegressor#

Request metadata passed to the fit method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to fit if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to fit .

  • None : metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str : metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default ( sklearn.utils.metadata_routing.UNCHANGED ) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Note

This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a Pipeline . Otherwise it has no effect.

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

Metadata routing for sample_weight parameter in fit .

Returns:
selfobject

The updated object.

set_params(**params)#

设置此估计器的参数。

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

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') TweedieRegressor#

Request metadata passed to the score method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to score if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to score .

  • None : metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str : metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default ( sklearn.utils.metadata_routing.UNCHANGED ) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Note

This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a Pipeline . Otherwise it has no effect.

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

Metadata routing for sample_weight parameter in score .

Returns:
selfobject

The updated object.