TransformedTargetRegressor#

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

Meta-Schätzer zur Regression auf ein transformiertes Ziel.

Nützlich für die Anwendung einer nicht-linearen Transformation auf das Ziel y in Regressionsproblemen. Diese Transformation kann als Transformer wie der QuantileTransformer oder als Funktion und ihre Umkehrfunktion wie np.log und np.exp angegeben werden.

Die Berechnung während fit ist

regressor.fit(X, func(y))

oder

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

Die Berechnung während predict ist

inverse_func(regressor.predict(X))

oder

transformer.inverse_transform(regressor.predict(X))

Mehr erfahren Sie im Benutzerhandbuch.

Hinzugefügt in Version 0.20.

Parameter:
regressorObjekt, Standard=None

Regressor-Objekt, das z.B. von RegressorMixin abgeleitet ist. Dieser Regressor wird jedes Mal vor dem Anpassen automatisch geklont. Wenn regressor is None, wird eine LinearRegression erstellt und verwendet.

transformerObjekt, Standard=None

Estimator-Objekt, das z.B. von TransformerMixin abgeleitet ist. Kann nicht gleichzeitig mit func und inverse_func gesetzt werden. Wenn transformer is None sowie func und inverse_func, ist der Transformer ein Identitätstransformator. Beachten Sie, dass der Transformer während des Anpassens geklont wird. Außerdem beschränkt der Transformer y auf ein Numpy-Array.

funcFunktion, Standard=None

Funktion, die auf y angewendet wird, bevor sie an fit übergeben wird. Kann nicht gleichzeitig mit transformer gesetzt werden. Wenn func is None, ist die verwendete Funktion die Identitätsfunktion. Wenn func gesetzt ist, muss auch inverse_func angegeben werden. Die Funktion muss ein 2-dimensionales Array zurückgeben.

inverse_funcFunktion, Standard=None

Funktion, die auf die Vorhersage des Regressors angewendet wird. Kann nicht gleichzeitig mit transformer gesetzt werden. Die Umkehrfunktion wird verwendet, um Vorhersagen in den gleichen Raum wie die ursprünglichen Trainingslabels zurückzubringen. Wenn inverse_func gesetzt ist, muss auch func angegeben werden. Die Umkehrfunktion muss ein 2-dimensionales Array zurückgeben.

check_inversebool, Standard=True

Ob geprüft werden soll, ob transform gefolgt von inverse_transform oder func gefolgt von inverse_func zu den ursprünglichen Zielwerten führt.

Attribute:
regressor_Objekt

Angepasster Regressor.

transformer_Objekt

Transformer, der in fit und predict verwendet wird.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen der während fit gesehenen Merkmale. Nur definiert, wenn X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

Siehe auch

sklearn.preprocessing.FunctionTransformer

Erstellt einen Transformer aus einer beliebigen aufrufbaren Funktion.

Anmerkungen

Intern wird das Ziel y immer in ein 2-dimensionales Array konvertiert, um von scikit-learn Transformern verwendet zu werden. Zum Zeitpunkt der Vorhersage wird die Ausgabe neu geformt, um die gleiche Anzahl von Dimensionen wie y zu haben.

Beispiele

>>> 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.])

Ein detaillierteres Anwendungsbeispiel finden Sie unter Auswirkung der Transformation von Zielen in einem Regressionsmodell.

fit(X, y, **fit_params)[Quelle]#

Trainiert das Modell anhand der gegebenen Trainingsdaten.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Trainingsvektor, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

yarray-like von Form (n_samples,)

Zielwerte.

**fit_paramsdict
  • Wenn enable_metadata_routing=False (Standard): Parameter, die direkt an die fit-Methode des zugrunde liegenden Regressors übergeben werden.

  • Wenn enable_metadata_routing=True: Parameter, die sicher an die fit-Methode des zugrunde liegenden Regressors weitergeleitet werden.

Geändert in Version 1.6: Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
selfobject

Angepasster Schätzer.

get_metadata_routing()[Quelle]#

Holt das Metadaten-Routing dieses Objekts.

Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.

Hinzugefügt in Version 1.6.

Gibt zurück:
routingMetadataRouter

Ein MetadataRouter, der die Routing-Informationen kapselt.

get_params(deep=True)[Quelle]#

Holt Parameter für diesen Schätzer.

Parameter:
deepbool, default=True

Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.

Gibt zurück:
paramsdict

Parameternamen, zugeordnet ihren Werten.

predict(X, **predict_params)[Quelle]#

Vorhersagen mit dem Basisregressor, Anwendung der Umkehrung.

Der Regressor wird zur Vorhersage verwendet und die inverse_func oder inverse_transform wird angewendet, bevor die Vorhersage zurückgegeben wird.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Stichproben.

**predict_paramsdict von str -> Objekt
  • Wenn enable_metadata_routing=False (Standard): Parameter, die direkt an die predict-Methode des zugrunde liegenden Regressors übergeben werden.

  • Wenn enable_metadata_routing=True: Parameter, die sicher an die predict-Methode des zugrunde liegenden Regressors weitergeleitet werden.

Geändert in Version 1.6: Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
y_hatndarray der Form (n_samples,)

Vorhergesagte Werte.

score(X, y, sample_weight=None)[Quelle]#

Gibt den Bestimmtheitskoeffizienten auf Testdaten zurück.

Der Bestimmtheitskoeffizient, \(R^2\), ist definiert als \((1 - \frac{u}{v})\), wobei \(u\) die Residuenquadratsumme ((y_true - y_pred)** 2).sum() und \(v\) die totale Summe der Quadrate ((y_true - y_true.mean()) ** 2).sum() ist. Der bestmögliche Score ist 1,0 und er kann negativ sein (da das Modell beliebig schlechter sein kann). Ein konstantes Modell, das immer den Erwartungswert von y vorhersagt, ohne die Eingangsmerkmale zu berücksichtigen, würde einen \(R^2\)-Score von 0,0 erzielen.

Parameter:
Xarray-like der Form (n_samples, n_features)

Teststichproben. Für einige Schätzer kann dies eine vorab berechnete Kernelmatrix oder eine Liste von generischen Objekten sein, stattdessen mit der Form (n_samples, n_samples_fitted), wobei n_samples_fitted die Anzahl der für die Anpassung des Schätzers verwendeten Stichproben ist.

yarray-like der Form (n_samples,) oder (n_samples, n_outputs)

Wahre Werte für X.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte.

Gibt zurück:
scorefloat

\(R^2\) von self.predict(X) bezogen auf y.

Anmerkungen

Der \(R^2\)-Score, der beim Aufruf von score auf einem Regressor verwendet wird, nutzt multioutput='uniform_average' ab Version 0.23, um konsistent mit dem Standardwert von r2_score zu sein. Dies beeinflusst die score-Methode aller Multioutput-Regressoren (mit Ausnahme von MultiOutputRegressor).

set_params(**params)[Quelle]#

Setzt die Parameter dieses Schätzers.

Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie Pipeline). Letztere haben Parameter der Form <component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.

Parameter:
**paramsdict

Schätzer-Parameter.

Gibt zurück:
selfestimator instance

Schätzer-Instanz.

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') TransformedTargetRegressor[Quelle]#

Konfiguriert, ob Metadaten für die score-Methode angefordert werden sollen.

Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit enable_metadata_routing=True aktiviert ist (siehe sklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.

Die Optionen für jeden Parameter sind

  • True: Metadaten werden angefordert und, falls vorhanden, an score übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an score.

  • None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.

  • str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.

Der Standardwert (sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.

Hinzugefügt in Version 1.3.

Parameter:
sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter sample_weight in score.

Gibt zurück:
selfobject

Das aktualisierte Objekt.