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使用示例?