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 估計實例 |