sklearn.compose.TransformedTargetRegressor¶
class sklearn.compose.TransformedTargetRegressor(regressor=None, *, transformer=None, func=None, inverse_func=None, check_inverse=True)
元估计器在转换后的目标上回归。
用于在回归问题中将非线性变换应用于目标y
。这种转换可以作为一个转换器(如Quantile转换器)进行,也可以作为一个函数和它的逆函数(如log
和exp
)进行。
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 派生的估计器对象。不能与func 和reverse_func 同时设置。如果transforme 是None , 与func 和inverse_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(-1, 1)
>>> 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_func
或inverse_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 估计实例 |