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
yin Regressionsproblemen. Diese Transformation kann als Transformer wie derQuantileTransformeroder als Funktion und ihre Umkehrfunktion wienp.logundnp.expangegeben werden.Die Berechnung während
fitistregressor.fit(X, func(y))
oder
regressor.fit(X, transformer.transform(y))
Die Berechnung während
predictistinverse_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
RegressorMixinabgeleitet ist. Dieser Regressor wird jedes Mal vor dem Anpassen automatisch geklont. Wennregressor is None, wird eineLinearRegressionerstellt und verwendet.- transformerObjekt, Standard=None
Estimator-Objekt, das z.B. von
TransformerMixinabgeleitet ist. Kann nicht gleichzeitig mitfuncundinverse_funcgesetzt werden. Wenntransformer is Nonesowiefuncundinverse_func, ist der Transformer ein Identitätstransformator. Beachten Sie, dass der Transformer während des Anpassens geklont wird. Außerdem beschränkt der Transformeryauf ein Numpy-Array.- funcFunktion, Standard=None
Funktion, die auf
yangewendet wird, bevor sie anfitübergeben wird. Kann nicht gleichzeitig mittransformergesetzt werden. Wennfunc is None, ist die verwendete Funktion die Identitätsfunktion. Wennfuncgesetzt ist, muss auchinverse_funcangegeben 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
transformergesetzt werden. Die Umkehrfunktion wird verwendet, um Vorhersagen in den gleichen Raum wie die ursprünglichen Trainingslabels zurückzubringen. Wenninverse_funcgesetzt ist, muss auchfuncangegeben werden. Die Umkehrfunktion muss ein 2-dimensionales Array zurückgeben.- check_inversebool, Standard=True
Ob geprüft werden soll, ob
transformgefolgt voninverse_transformoderfuncgefolgt voninverse_funczu den ursprünglichen Zielwerten führt.
- Attribute:
- regressor_Objekt
Angepasster Regressor.
- transformer_Objekt
n_features_in_intAnzahl 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
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
Siehe auch
sklearn.preprocessing.FunctionTransformerErstellt einen Transformer aus einer beliebigen aufrufbaren Funktion.
Anmerkungen
Intern wird das Ziel
yimmer 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 wieyzu 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_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.- yarray-like von Form (n_samples,)
Zielwerte.
- **fit_paramsdict
Wenn
enable_metadata_routing=False(Standard): Parameter, die direkt an diefit-Methode des zugrunde liegenden Regressors übergeben werden.Wenn
enable_metadata_routing=True: Parameter, die sicher an diefit-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_funcoderinverse_transformwird 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 diepredict-Methode des zugrunde liegenden Regressors übergeben werden.Wenn
enable_metadata_routing=True: Parameter, die sicher an diepredict-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 vonyvorhersagt, 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), wobein_samples_fitteddie 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 aufy.
Anmerkungen
Der \(R^2\)-Score, der beim Aufruf von
scoreauf einem Regressor verwendet wird, nutztmultioutput='uniform_average'ab Version 0.23, um konsistent mit dem Standardwert vonr2_scorezu sein. Dies beeinflusst diescore-Methode aller Multioutput-Regressoren (mit Ausnahme vonMultiOutputRegressor).
- 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=Trueaktiviert ist (siehesklearn.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, anscoreübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anscore.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_weightinscore.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
Galeriebeispiele#
Auswirkung der Transformation der Ziele in einem Regressionsmodell
Häufige Fallstricke bei der Interpretation von Koeffizienten linearer Modelle
Poisson-Regression und nicht-normale Verlustfunktion