RobustScaler#
- class sklearn.preprocessing.RobustScaler(*, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True, unit_variance=False)[Quelle]#
Skaliert Merkmale unter Verwendung von Statistiken, die robust gegenüber Ausreißern sind.
Dieser Scaler entfernt den Median und skaliert die Daten entsprechend dem Quantilbereich (Standard ist IQR: Interquartilsabstand). Der IQR ist der Bereich zwischen dem 1. Quartil (25. Quantil) und dem 3. Quartil (75. Quantil).
Zentrierung und Skalierung erfolgen unabhängig voneinander für jedes Merkmal, indem die relevanten Statistiken über die Stichproben im Trainingsdatensatz berechnet werden. Median und Interquartilsabstand werden dann gespeichert, um sie mit der Methode
transformauf spätere Daten anzuwenden.Die Standardisierung eines Datensatzes ist eine gängige Vorverarbeitung für viele Machine-Learning-Schätzer. Typischerweise geschieht dies durch Entfernen des Mittelwerts und Skalierung auf Einheitsvarianz. Ausreißer können jedoch oft den Stichprobenmittelwert/-varianz negativ beeinflussen. In solchen Fällen liefert die Verwendung des Medians und des Interquartilsabstands oft bessere Ergebnisse. Für eine Beispielvisualisierung und einen Vergleich mit anderen Skalern siehe Vergleich von RobustScaler mit anderen Skalern.
Hinzugefügt in Version 0.17.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- with_centeringbool, Standard=True
Wenn
True, werden die Daten vor der Skalierung zentriert. Dies führt dazu, dasstransformeine Ausnahme auslöst, wenn sie auf spärliche Matrizen angewendet wird, da deren Zentrierung die Erstellung einer dichten Matrix erfordert, die in gängigen Anwendungsfällen wahrscheinlich zu groß ist, um in den Speicher zu passen.- with_scalingbool, Standard=True
Wenn
True, werden die Daten auf den Interquartilsabstand skaliert.- quantile_rangetuple (q_min, q_max), 0.0 < q_min < q_max < 100.0, Standard=(25.0, 75.0)
Quantilbereich, der zur Berechnung von
scale_verwendet wird. Standardmäßig ist dies gleich dem IQR, d. h.q_minist das erste Quantil undq_maxist das dritte Quantil.Hinzugefügt in Version 0.18.
- copybool, Standard=True
Wenn
False, versuchen Sie, eine Kopie zu vermeiden und stattdessen inplace-Skalierung durchzuführen. Dies funktioniert nicht immer inplace; z.B. wenn die Daten keine NumPy-Array oder eine scipy.sparse CSR-Matrix sind, kann trotzdem eine Kopie zurückgegeben werden.- unit_variancebool, Standard=False
Wenn
True, werden die Daten so skaliert, dass normalverteilte Merkmale eine Varianz von 1 haben. Im Allgemeinen, wenn die Differenz zwischen den x-Werten vonq_maxundq_minfür eine Standardnormalverteilung größer als 1 ist, wird der Datensatz nach unten skaliert. Wenn sie kleiner als 1 ist, wird der Datensatz nach oben skaliert.Hinzugefügt in Version 0.24.
- Attribute:
- center_array of floats
Der Medianwert für jedes Merkmal im Trainingsdatensatz.
- scale_array of floats
Der (skalierte) Interquartilsabstand für jedes Merkmal im Trainingsdatensatz.
Hinzugefügt in Version 0.17: scale_ Attribut.
- 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
robust_scaleÄquivalente Funktion ohne die Estimator-API.
sklearn.decomposition.PCAEntfernt weiter die lineare Korrelation über Merkmale hinweg mit 'whiten=True'.
Anmerkungen
https://en.wikipedia.org/wiki/Median https://en.wikipedia.org/wiki/Interquartile_range
Beispiele
>>> from sklearn.preprocessing import RobustScaler >>> X = [[ 1., -2., 2.], ... [ -2., 1., 3.], ... [ 4., 1., -2.]] >>> transformer = RobustScaler().fit(X) >>> transformer RobustScaler() >>> transformer.transform(X) array([[ 0. , -2. , 0. ], [-1. , 0. , 0.4], [ 1. , 0. , -1.6]])
- fit(X, y=None)[Quelle]#
Berechnet den Median und die Quantile zur Skalierung.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Daten, die zur Berechnung des Medians und der Quantile für die spätere Skalierung entlang der Merkmalsachse verwendet werden.
- yIgnoriert
Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.
- Gibt zurück:
- selfobject
Gefitteter Scaler.
- fit_transform(X, y=None, **fit_params)[Quelle]#
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)[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]#
Skaliert die Daten zurück in die ursprüngliche Darstellung.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die skalierten Daten, die zurücktransformiert werden sollen.
- Gibt zurück:
- X_original{ndarray, sparse matrix} der Form (n_samples, n_features)
Transformiertes Array.
- 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.
Galeriebeispiele#
Fehlende Werte mit Varianten von IterativeImputer imputieren
Fehlende Werte imputieren, bevor ein Schätzer erstellt wird
Vergleich der Auswirkungen verschiedener Skalierer auf Daten mit Ausreißern