minmax_scale#

sklearn.preprocessing.minmax_scale(X, feature_range=(0, 1), *, axis=0, copy=True)[Quelle]#

Transformiert Merkmale durch Skalierung jedes Merkmals auf einen gegebenen Bereich.

Dieser Schätzer skaliert und verschiebt jedes Merkmal individuell so, dass es im angegebenen Bereich auf dem Trainingsdatensatz liegt, d. h. zwischen Null und Eins.

Die Transformation ist gegeben durch (wenn axis=0)

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min

wobei min, max = feature_range.

Die Transformation wird berechnet als (wenn axis=0)

X_scaled = scale * X + min - X.min(axis=0) * scale
where scale = (max - min) / (X.max(axis=0) - X.min(axis=0))

Diese Transformation wird oft als Alternative zur Skalierung mit Mittelwert Null und Einheitsvarianz verwendet.

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 0.17: minmax_scale Funktionsschnittstelle zu MinMaxScaler.

Parameter:
Xarray-like der Form (n_samples, n_features)

Die Daten.

feature_rangeTupel (min, max), Standardwert=(0, 1)

Gewünschter Bereich der transformierten Daten.

axis{0, 1}, Standardwert=0

Achse, entlang derer skaliert werden soll. Wenn 0, werden die einzelnen Merkmale unabhängig skaliert, andernfalls (wenn 1) wird jede Stichprobe 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_trndarray der Form (n_samples, n_features)

Die transformierten Daten.

Warnung

Risiko von Datenlecks Verwenden Sie minmax_scale nicht, es sei denn, Sie wissen, was Sie tun. Ein häufiger Fehler ist, es auf die gesamten Daten anzuwenden, *bevor* diese in Trainings- und Testdatensätze aufgeteilt werden. Dies führt zu einer verzerrten Modellauswertung, da Informationen vom Testdatensatz in den Trainingsdatensatz übergegangen wären. Im Allgemeinen empfehlen wir die Verwendung von MinMaxScaler innerhalb einer Pipeline, um die meisten Risiken von Datenlecks zu verhindern: pipe = make_pipeline(MinMaxScaler(), LogisticRegression()).

Siehe auch

MinMaxScaler

Führt die Skalierung auf einen gegebenen Bereich mithilfe der Transformer-API durch (z. B. als Teil einer Vorverarbeitungs- Pipeline).

Anmerkungen

Für einen Vergleich der verschiedenen Skalierer, Transformer und Normalisierer siehe: Vergleichen Sie die Auswirkung verschiedener Skalierer auf Daten mit Ausreißern.

Beispiele

>>> from sklearn.preprocessing import minmax_scale
>>> X = [[-2, 1, 2], [-1, 0, 1]]
>>> minmax_scale(X, axis=0)  # scale each column independently
array([[0., 1., 1.],
       [1., 0., 0.]])
>>> minmax_scale(X, axis=1)  # scale each row independently
array([[0.  , 0.75, 1.  ],
       [0.  , 0.5 , 1.  ]])