QuantileTransformer#
- class sklearn.preprocessing.QuantileTransformer(*, n_quantiles=1000, output_distribution='uniform', ignore_implicit_zeros=False, subsample=10000, random_state=None, copy=True)[source]#
Transformiert Merkmale mithilfe von Quantilinformationen.
Diese Methode transformiert die Features so, dass sie einer uniformen oder einer normalen Verteilung folgen. Daher tendiert diese Transformation für ein gegebenes Feature dazu, die häufigsten Werte zu verteilen. Sie reduziert auch den Einfluss von (marginalen) Ausreißern: dies ist daher ein robustes Vorverarbeitungsschema.
Die Transformation wird für jedes Feature unabhängig angewendet. Zuerst wird eine Schätzung der kumulativen Verteilungsfunktion eines Features verwendet, um die ursprünglichen Werte auf eine uniforme Verteilung abzubilden. Die erhaltenen Werte werden dann mithilfe der zugehörigen Quantilfunktion auf die gewünschte Ausgabeverteilung abgebildet. Werte von neuen/unbekannten Daten, die außerhalb des angepassten Bereichs liegen, werden auf die Grenzen der Ausgabeverteilung abgebildet. Beachten Sie, dass diese Transformation nichtlinear ist. Sie kann lineare Korrelationen zwischen Variablen, die auf derselben Skala gemessen werden, verzerren, macht aber Variablen, die auf unterschiedlichen Skalen gemessen werden, direkter vergleichbar.
Beispielvisualisierungen finden Sie unter Vergleich von QuantileTransformer mit anderen Skalierern.
Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 0.19.
- Parameter:
- n_quantilesint, default=1000 oder n_samples
Anzahl der zu berechnenden Quantile. Dies entspricht der Anzahl der Landmarken, die zur Diskretisierung der kumulativen Verteilungsfunktion verwendet werden. Wenn n_quantiles größer ist als die Anzahl der Samples, wird n_quantiles auf die Anzahl der Samples gesetzt, da eine größere Anzahl von Quantilen keine bessere Annäherung an den Schätzer der kumulativen Verteilungsfunktion liefert.
- output_distribution{‘uniform’, ‘normal’}, default=’uniform’
Marginale Verteilung für die transformierten Daten. Die Auswahlmöglichkeiten sind ‘uniform’ (Standard) oder ‘normal’.
- ignore_implicit_zerosbool, default=False
Gilt nur für dünnbesetzte Matrizen. Wenn True, werden die dünnbesetzten Einträge der Matrix zur Berechnung der Quantilstatistiken verworfen. Wenn False, werden diese Einträge als Nullen behandelt.
- subsampleint oder None, default=10_000
Maximale Anzahl von Samples, die zur Schätzung der Quantile verwendet werden, aus Gründen der Recheneffizienz. Beachten Sie, dass das Subsampling-Verfahren für identische dünnbesetzte und dichte Matrizen unterschiedlich sein kann. Deaktivieren Sie das Subsampling, indem Sie
subsample=Nonesetzen.Hinzugefügt in Version 1.5: Die Option
Nonezum Deaktivieren des Subsamplings wurde hinzugefügt.- random_stateint, RandomState-Instanz oder None, default=None
Bestimmt die Zufallszahlengenerierung für Subsampling und Glättungsrauschen. Weitere Details finden Sie unter
subsample. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.- copybool, Standard=True
Auf False setzen, um die Transformation inplace durchzuführen und eine Kopie zu vermeiden (wenn die Eingabe bereits ein Numpy-Array ist).
- Attribute:
- n_quantiles_int
Die tatsächliche Anzahl der Quantile, die zur Diskretisierung der kumulativen Verteilungsfunktion verwendet werden.
- quantiles_ndarray von Form (n_quantiles, n_features)
Die Werte, die den Referenzquantilen entsprechen.
- references_ndarray von Form (n_quantiles, )
Quantile der Referenzen.
- 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
quantile_transformÄquivalente Funktion ohne die Estimator-API.
PowerTransformerDurchführung der Abbildung auf eine normale Verteilung mittels einer Potenztransformation.
StandardScalerDurchführung einer Standardisierung, die schneller, aber weniger robust gegenüber Ausreißern ist.
RobustScalerDurchführung einer robusten Standardisierung, die den Einfluss von Ausreißern entfernt, aber Ausreißer und Inlierer nicht auf dieselbe Skala bringt.
Anmerkungen
NaNs werden als fehlende Werte behandelt: bei fit ignoriert und bei transform beibehalten.
Beispiele
>>> import numpy as np >>> from sklearn.preprocessing import QuantileTransformer >>> rng = np.random.RandomState(0) >>> X = np.sort(rng.normal(loc=0.5, scale=0.25, size=(25, 1)), axis=0) >>> qt = QuantileTransformer(n_quantiles=10, random_state=0) >>> qt.fit_transform(X) array([...])
- fit(X, y=None)[source]#
Berechnet die für die Transformation verwendeten Quantile.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Daten, die zur Skalierung entlang der Feature-Achse verwendet werden. Wenn eine dünnbesetzte Matrix bereitgestellt wird, wird diese in eine dünnbesetzte
csc_matrixkonvertiert. Zusätzlich muss die dünnbesetzte Matrix nicht-negativ sein, wennignore_implicit_zerosFalse ist.- yNone
Ignoriert.
- Gibt zurück:
- selfobject
Gefitteter Transformer.
- fit_transform(X, y=None, **fit_params)[source]#
An Daten anpassen, dann transformieren.
Passt den Transformer an
Xundymit optionalen Parameternfit_paramsan und gibt eine transformierte Version vonXzurück.- Parameter:
- Xarray-like der Form (n_samples, n_features)
Eingabestichproben.
- yarray-like der Form (n_samples,) oder (n_samples, n_outputs), Standardwert=None
Zielwerte (None für unüberwachte Transformationen).
- **fit_paramsdict
Zusätzliche Fit-Parameter. Nur übergeben, wenn der Estimator zusätzliche Parameter in seiner
fit-Methode akzeptiert.
- Gibt zurück:
- X_newndarray array der Form (n_samples, n_features_new)
Transformiertes Array.
- get_feature_names_out(input_features=None)[source]#
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()[source]#
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)[source]#
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)[source]#
Rückprojektion in den ursprünglichen Raum.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Daten, die zur Skalierung entlang der Feature-Achse verwendet werden. Wenn eine dünnbesetzte Matrix bereitgestellt wird, wird diese in eine dünnbesetzte
csc_matrixkonvertiert. Zusätzlich muss die dünnbesetzte Matrix nicht-negativ sein, wennignore_implicit_zerosFalse ist.
- Gibt zurück:
- X_original{ndarray, sparse matrix} von (n_samples, n_features)
Die projizierten Daten.
- set_output(*, transform=None)[source]#
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)[source]#
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)[source]#
Feature-weise Transformation der Daten.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Daten, die zur Skalierung entlang der Feature-Achse verwendet werden. Wenn eine dünnbesetzte Matrix bereitgestellt wird, wird diese in eine dünnbesetzte
csc_matrixkonvertiert. Zusätzlich muss die dünnbesetzte Matrix nicht-negativ sein, wennignore_implicit_zerosFalse ist.
- Gibt zurück:
- Xt{ndarray, sparse matrix} der Form (n_samples, n_features)
Die projizierten Daten.
Galeriebeispiele#
Auswirkung der Transformation der Ziele in einem Regressionsmodell
Partial Dependence und Individual Conditional Expectation Plots
Vergleich der Auswirkungen verschiedener Skalierer auf Daten mit Ausreißern