PowerTransformer#
- class sklearn.preprocessing.PowerTransformer(method='yeo-johnson', *, standardize=True, copy=True)[Quelle]#
Wendet eine Potenztransformation merkmalweise an, um Daten mehr Gauss'sche Eigenschaften zu verleihen.
Power-Transformationen sind eine Familie von parametrischen, monotonen Transformationen, die angewendet werden, um Daten zu einer normalverteilungsähnlicheren Form zu bringen. Dies ist nützlich für die Modellierung von Problemen im Zusammenhang mit Heteroskedastizität (nicht-konstante Varianz) oder anderen Situationen, in denen Normalverteilung gewünscht ist.
Derzeit unterstützt PowerTransformer die Box-Cox-Transformation und die Yeo-Johnson-Transformation. Der optimale Parameter zur Stabilisierung der Varianz und Minimierung der Schiefe wird durch Maximum-Likelihood geschätzt.
Box-Cox erfordert, dass die Eingabedaten streng positiv sind, während Yeo-Johnson sowohl positive als auch negative Daten unterstützt.
Standardmäßig wird auf die transformierten Daten eine Normalisierung mit Null-Mittelwert und Einheitsvarianz angewendet.
Eine Beispielvisualisierung finden Sie unter Vergleich von PowerTransformer mit anderen Skalierern. Um die Auswirkungen der Box-Cox- und Yeo-Johnson-Transformationen auf verschiedene Verteilungen zu sehen, siehe: Daten auf eine Normalverteilung abbilden.
Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 0.20.
- Parameter:
- method{‘yeo-johnson’, ‘box-cox’}, standard=’yeo-johnson’
Die verwendete Power-Transformationsmethode. Verfügbare Methoden sind:
- standardizebool, standard=True
Setzen Sie auf True, um die transformierten Ausgaben mit Null-Mittelwert und Einheitsvarianz zu normalisieren.
- copybool, Standard=True
Setzen Sie auf False, um die inplace-Berechnung während der Transformation durchzuführen.
- Attribute:
- lambdas_ndarray von float der Form (n_features,)
Die Parameter der Power-Transformation für die ausgewählten Merkmale.
- n_features_in_int
Anzahl der während des fits gesehenen Merkmale.
Hinzugefügt in Version 0.24.
- 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
power_transformÄquivalente Funktion ohne die Estimator-API.
QuantileTransformerBildet Daten mit dem Parameter
output_distribution='normal'auf eine Standard-Normalverteilung ab.
Anmerkungen
NaNs werden als fehlende Werte behandelt: bei
fitignoriert und beitransformbeibehalten.Referenzen
[1]Beispiele
>>> import numpy as np >>> from sklearn.preprocessing import PowerTransformer >>> pt = PowerTransformer() >>> data = [[1, 2], [3, 2], [4, 5]] >>> print(pt.fit(data)) PowerTransformer() >>> print(pt.lambdas_) [ 1.386 -3.100] >>> print(pt.transform(data)) [[-1.316 -0.707] [ 0.209 -0.707] [ 1.106 1.414]]
- fit(X, y=None)[Quelle]#
Schätzt den optimalen Parameter Lambda für jedes Merkmal.
Der optimale Lambda-Parameter zur Minimierung der Schiefe wird für jedes Merkmal unabhängig mittels Maximum-Likelihood geschätzt.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Die Daten, die zur Schätzung der optimalen Transformationsparameter verwendet werden.
- yNone
Ignoriert.
- Gibt zurück:
- selfobject
Gefitteter Transformer.
- fit_transform(X, y=None)[Quelle]#
Passt
PowerTransformeranXan und transformiert dannX.- Parameter:
- Xarray-like der Form (n_samples, n_features)
Die Daten, die zur Schätzung der optimalen Transformationsparameter und zur Transformation mittels einer Power-Transformation verwendet werden.
- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- Gibt zurück:
- X_newndarray der Form (n_samples, n_features)
Transformierte Daten.
- get_feature_names_out(input_features=None)[Quelle]#
Holt die Ausgabemerkmale für die Transformation.
- Parameter:
- input_featuresarray-like von str oder None, default=None
Eingabemerkmale.
Wenn
input_featuresNoneist, werdenfeature_names_in_als Merkmalnamen verwendet. Wennfeature_names_in_nicht definiert ist, werden die folgenden Eingabemerkmalsnamen generiert:["x0", "x1", ..., "x(n_features_in_ - 1)"].Wenn
input_featuresein Array-ähnliches Objekt ist, mussinput_featuresmitfeature_names_in_übereinstimmen, wennfeature_names_in_definiert ist.
- Gibt zurück:
- feature_names_outndarray von str-Objekten
Gleich wie Eingabemerkmale.
- get_metadata_routing()[Quelle]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
- Gibt zurück:
- routingMetadataRequest
Ein
MetadataRequest, der 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.
- inverse_transform(X)[Quelle]#
Wendet die inverse Power-Transformation unter Verwendung der gefitteten Lambdas an.
Die Umkehrung der Box-Cox-Transformation ist gegeben durch
if lambda_ == 0: X_original = exp(X_trans) else: X_original = (X * lambda_ + 1) ** (1 / lambda_)
Die Umkehrung der Yeo-Johnson-Transformation ist gegeben durch
if X >= 0 and lambda_ == 0: X_original = exp(X) - 1 elif X >= 0 and lambda_ != 0: X_original = (X * lambda_ + 1) ** (1 / lambda_) - 1 elif X < 0 and lambda_ != 2: X_original = 1 - (-(2 - lambda_) * X + 1) ** (1 / (2 - lambda_)) elif X < 0 and lambda_ == 2: X_original = 1 - exp(-X)
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Die transformierten Daten.
- Gibt zurück:
- X_originalndarray von der Form (n_samples, n_features)
Die ursprünglichen Daten.
- set_output(*, transform=None)[Quelle]#
Ausgabecontainer festlegen.
Siehe Einführung in die set_output API für ein Beispiel zur Verwendung der API.
- Parameter:
- transform{“default”, “pandas”, “polars”}, default=None
Konfiguriert die Ausgabe von
transformundfit_transform."default": Standardausgabeformat eines Transformers"pandas": DataFrame-Ausgabe"polars": Polars-AusgabeNone: Die Transformationskonfiguration bleibt unverändert
Hinzugefügt in Version 1.4: Die Option
"polars"wurde hinzugefügt.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- 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.
- transform(X)[Quelle]#
Wendet die Power-Transformation auf jedes Merkmal unter Verwendung der gefitteten Lambdas an.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Die Daten, die mittels einer Power-Transformation transformiert werden sollen.
- Gibt zurück:
- X_transndarray der Form (n_samples, n_features)
Die transformierten Daten.
Galeriebeispiele#
Vergleich der Auswirkungen verschiedener Skalierer auf Daten mit Ausreißern