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:

  • ‘yeo-johnson’ [1], funktioniert mit positiven und negativen Werten

  • ‘box-cox’ [2], funktioniert nur mit streng positiven Werten

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 X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

Siehe auch

power_transform

Äquivalente Funktion ohne die Estimator-API.

QuantileTransformer

Bildet Daten mit dem Parameter output_distribution='normal' auf eine Standard-Normalverteilung ab.

Anmerkungen

NaNs werden als fehlende Werte behandelt: bei fit ignoriert und bei transform beibehalten.

Referenzen

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 PowerTransformer an X an und transformiert dann X.

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_features None ist, werden feature_names_in_ als Merkmalnamen verwendet. Wenn feature_names_in_ nicht definiert ist, werden die folgenden Eingabemerkmalsnamen generiert: ["x0", "x1", ..., "x(n_features_in_ - 1)"].

  • Wenn input_features ein Array-ähnliches Objekt ist, muss input_features mit feature_names_in_ übereinstimmen, wenn feature_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 transform und fit_transform.

  • "default": Standardausgabeformat eines Transformers

  • "pandas": DataFrame-Ausgabe

  • "polars": Polars-Ausgabe

  • None: 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.