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 估计实例 |



