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 transform auf 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, dass transform eine 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_min ist das erste Quantil und q_max ist 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 von q_max und q_min fü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 X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

Siehe auch

robust_scale

Äquivalente Funktion ohne die Estimator-API.

sklearn.decomposition.PCA

Entfernt 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 X und y mit optionalen Parametern fit_params an und gibt eine transformierte Version von X zurü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_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]#

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 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]#

Zentriert und skaliert die Daten.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Daten, die entlang der angegebenen Achse skaliert werden.

Gibt zurück:
X_tr{ndarray, sparse matrix} mit der Form (n_samples, n_features)

Transformiertes Array.