scale#
- sklearn.preprocessing.scale(X, *, axis=0, with_mean=True, with_std=True, copy=True)[Quelle]#
Standardisiert einen Datensatz entlang einer beliebigen Achse.
Auf den Mittelwert zentrieren und komponentweise auf Einheitsvarianz skalieren.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die zu zentrierenden und zu skalierenden Daten.
- axis{0, 1}, Standardwert=0
Achse, entlang der die Mittelwerte und Standardabweichungen berechnet werden. Wenn 0, werden die einzelnen Merkmale unabhängig standardisiert, andernfalls (wenn 1) werden die einzelnen Stichproben standardisiert.
- with_meanbool, Standard=True
Wenn True, werden die Daten vor dem Skalieren zentriert.
- with_stdbool, Standard=True
Wenn True, werden die Daten auf Einheitsvarianz (oder gleichbedeutend, Einheitsstandardabweichung) skaliert.
- copybool, Standard=True
Wenn False, versuchen Sie, eine Kopie zu vermeiden und die Skalierung direkt vorzunehmen. Dies ist nicht garantiert immer direkt möglich; z. B. wenn die Daten ein NumPy-Array mit einem Integer-Datentyp sind, wird auch bei copy=False eine Kopie zurückgegeben.
- Gibt zurück:
- X_tr{ndarray, sparse matrix} mit der Form (n_samples, n_features)
Die transformierten Daten.
Siehe auch
StandardScalerFührt die Skalierung auf Einheitsvarianz mittels der Transformer-API durch (z. B. als Teil einer Vorverarbeitungs-
Pipeline).
Anmerkungen
Diese Implementierung weigert sich, scipy.sparse Matrizen zu zentrieren, da dies sie nicht-sparse machen würde und potenziell zu Speichererschöpfungsproblemen führen könnte.
Stattdessen wird erwartet, dass der Aufrufer entweder explizit
with_mean=Falsesetzt (in diesem Fall wird nur die Varianzskalierung auf die Merkmale der CSC-Matrix angewendet) oderX.toarray()aufruft, wenn er/sie erwartet, dass das materialisierte dichte Array in den Speicher passt.Um Speicherkopien zu vermeiden, sollte der Aufrufer eine CSC-Matrix übergeben.
NaNs werden als fehlende Werte behandelt: bei der Berechnung der Statistiken ignoriert und während der Datentransformation beibehalten.
Wir verwenden einen verzerrten Schätzer für die Standardabweichung, äquivalent zu
numpy.std(x, ddof=0). Beachten Sie, dass die Wahl vonddofwahrscheinlich keinen Einfluss auf die Modellleistung hat.Für einen Vergleich der verschiedenen Skalierer, Transformer und Normalisierer siehe: Vergleichen Sie die Auswirkung verschiedener Skalierer auf Daten mit Ausreißern.
Warnung
Risiko von Datenlecks
Verwenden Sie
scalenicht, es sei denn, Sie wissen, was Sie tun. Ein häufiger Fehler ist, es auf die gesamten Daten anzuwenden, *bevor* in Trainings- und Testdatensätze aufgeteilt wird. Dies würde die Modellevaluierung verzerren, da Informationen aus dem Testdatensatz in den Trainingsdatensatz gelangt wären. Im Allgemeinen empfehlen wir die Verwendung vonStandardScalerinnerhalb einer Pipeline, um die meisten Risiken von Datenlecks zu vermeiden:pipe = make_pipeline(StandardScaler(), LogisticRegression()).Beispiele
>>> from sklearn.preprocessing import scale >>> X = [[-2, 1, 2], [-1, 0, 1]] >>> scale(X, axis=0) # scaling each column independently array([[-1., 1., 1.], [ 1., -1., -1.]]) >>> scale(X, axis=1) # scaling each row independently array([[-1.37, 0.39, 0.98], [-1.22, 0. , 1.22]])