sklearn.compose.TransformedTargetRegressor

class sklearn.compose.TransformedTargetRegressor(regressor=None, *, transformer=None, func=None, inverse_func=None, check_inverse=True)

[源码]

元估计器在转换后的目标上回归。

用于在回归问题中将非线性变换应用于目标y。这种转换可以作为一个转换器(如Quantile转换器)进行,也可以作为一个函数和它的逆函数(如logexp)进行。

fit期间的计算如下:

regressor.fit(X, func(y))

或者:

regressor.fit(X, transformer.transform(y))

predict过程中的计算:

inverse_func(regressor.predict(X))

或者:

transformer.inverse_transform(regressor.predict(X))

用户指南中阅读更多内容。

New in version 0.20.

参数 属性
regressor object, default=None
RegressorMixin派生的Regressor对象。此回归器将在每次拟合之前自动克隆。如果回归器是None, LinearRegression()将被创建和使用。
transformer object, default=None
TransformerMixin派生的估计器对象。不能与funcreverse_func同时设置。如果transformeNone, 与funcinverse_func一样好,那么转换器将是一个标志转换器。请注意,转换器将在拟合过程中被克隆。另外,转换器还将y限制为一个Numpy数组。
func function, default=None
函数应用于回归的预测。不能与transformer同时设置。函数需要返回一个二维数组。逆函数用于将预测返回到原始训练标签的相同空间。
check_inverse bool, default=True
是检查transform后的inverse_transform,还是检查后面跟着func的转换,都会导致原始目标的出现。
属性 方法
regressor_ object
拟合回归器
transformer_ object
转换器用于拟合和预测。

在内部,目标y总是转换成一个二维数组,以供scikit-learn 转换器使用。在预测时,输出将被重塑为a具有与y相同的维数。

参见 examples/compose/plot_transformed_target.py.

示例

>>> import numpy as np
>>> from sklearn.linear_model import LinearRegression
>>> from sklearn.compose import TransformedTargetRegressor
>>> tt = TransformedTargetRegressor(regressor=LinearRegression(),
...                                 func=np.log, inverse_func=np.exp)
>>> X = np.arange(4).reshape(-11)
>>> y = np.exp(2 * X).ravel()
>>> tt.fit(X, y)
TransformedTargetRegressor(...)
>>> tt.score(X, y)
1.0
>>> tt.regressor_.coef_
array([2.])

方法

方法 说明
fit(self, X, y, **fit_params) 根据给定的训练数据对模型进行拟合。
get_params(self[, deep]) 获取此估计器的参数
predict(self, X) 使用基回归器进行预测,应用逆方法
score(self, X, y[, sample_weight]) 回归预测的决定系数R^2
set_params(self, **params) 设置此估计器的参数
__init__(self, regressor=None, *, transformer=None, func=None, inverse_func=None, check_inverse=True)

[源码]

初始化self。 请参阅help(type(self))以获得准确的说明。

fit(self, X, y, **fit_params)

[源码]

根据给定的训练数据对模型进行拟合。

参数 说明
X {array-like, sparse matrix} of shape (n_samples, n_features)
训练向量,其中n_samples是样本数,n_features是特征数。
y array-like of shape (n_samples,)
目标值
返回值 说明
self object
get_params(self, deep=True)

[源码]

获取此估计器的参数

参数 说明
deep bool, default=True
如果为True,则将返回此估计器的参数和所包含的作为估计器的子对象。
返回值 说明
params mapping of string to any
映射到其值的参数名称
predict(self, X)

[源码]

使用基回归器进行预测,应用逆方法

在返回预测之前,使用回归器进行预测,并应用inverse_funcinverse_transform

参数 说明
X {array-like, sparse matrix} of shape (n_samples, n_features)
样本
返回值 说明
y_hat ndarray of shape (n_samples,)
预测值
score(self, X, y, sample_weight=None)

[源码]

回归预测的决定系数R^2

系数R^2^被定义为(1-u/v),其中u是残差平方和((y_true-y_pred)**2).sum(),v是总平方和((y_true-y_true.mean())**2).sum()。最好的分数是1.0,它可以是负的(因为模型可以任意恶化)。一个总是预测y的期望值的常数模型,不考虑输入特征,则得到R^2的分数为0.0。

参数 说明
X array-like of shape (n_samples, n_features)
测试样本。对于某些估计器,这可能是一个预先计算的核矩阵或一个泛型对象的列表,shape = (n_samples, n_samples_fitted),其中n_samples_fitted是用于对估计器进行拟合的样本数。
y array-like of shape (n_samples,) or (n_samples, n_outputs)
X的真值
sample_weight array-like of shape (n_samples,), default=None
样本权重
返回值 说明
score float
self.predict(X)与y的R^2

注意

0.23版本中, 在一个回归器上调用 score时得到的R2分数,使用multioutput='uniform_average',以保持与 r2_score的默认值一致。这会影响所有多输出回归者的score方法( MultiOutputRegressor除外)。

set_params(self, **params)

[源码]

设置此估计器的参数

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

参数 说明
**params dict
估计参数
返回值 说明
self object
估计实例

sklearn.compose.TransformedTargetRegressor使用示例