Standardscaler, Minmaxscaler, Maxabsscaler
Swipe um das Menü anzuzeigen
Es gibt drei gängige Ansätze zur Skalierung von Daten:
MinMaxScaler: skaliert Merkmale auf einen Bereich von [0, 1];MaxAbsScaler: skaliert Merkmale so, dass der maximale Absolutwert 1 ist (die Daten liegen somit garantiert im Bereich [-1, 1]);StandardScaler: standardisiert Merkmale, sodass der Mittelwert 0 und die Varianz 1 beträgt.
Um zu veranschaulichen, wie Skalierer arbeiten, betrachten Sie die Merkmale 'culmen_depth_mm' und 'body_mass_g' aus dem penguins dataset. Diese Merkmale können geplottet werden, um ihre Skalen zu beobachten.
MinMaxScaler
Der MinMaxScaler funktioniert, indem er den Minimalwert subtrahiert (um die Werte bei Null beginnen zu lassen) und anschließend durch (x_max - x_min) teilt, sodass das Ergebnis kleiner oder gleich 1 ist.
Hier ist das GIF, das zeigt, wie der MinMaxScaler funktioniert:
MaxAbsScaler
Der MaxAbsScaler funktioniert, indem er den maximalen Absolutwert ermittelt und jeden Wert durch diesen teilt. Dadurch wird sichergestellt, dass der maximale Absolutwert 1 ist.
StandardScaler
Das Konzept des StandardScaler stammt aus der Statistik. Er funktioniert, indem er den Mittelwert subtrahiert (um die Werte um Null zu zentrieren) und durch die Standardabweichung teilt (um die Varianz auf 1 zu setzen).
Falls Sie nicht wissen, was Mittelwert, Standardabweichung und Varianz sind, können Sie unseren Learning Statistics with Python-Kurs besuchen. Dieses Wissen ist jedoch nicht zwingend erforderlich, um fortzufahren.
Hier ist ein Codebeispiel mit MinMaxScaler. Andere Skalierer werden auf die gleiche Weise angewendet.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
Die Ausgabe ist nicht besonders ansprechend, da Skalierer die Daten in ein numpy-Array umwandeln, aber mit Pipelines stellt das kein Problem dar.
Es sollten nur die Merkmalsspalten (die Variable X) skaliert werden. Es ist nicht notwendig, die Zielvariable zu skalieren, da dies den Prozess der inversen Transformation erschweren würde.
Welchen Scaler verwenden?
Ein StandardScaler ist empfindlicher gegenüber Ausreißern und daher weniger als Standardskaler geeignet. Wenn eine Alternative zu StandardScaler bevorzugt wird, hängt die Wahl zwischen MinMaxScaler und MaxAbsScaler von den eigenen Präferenzen ab: Entweder Skalierung der Daten auf den Bereich [0,1] mit MinMaxScaler oder auf [-1,1] mit MaxAbsScaler.
1. Was ist der Hauptzweck der Verwendung von MinMaxScaler bei der Datenvorverarbeitung?
2. Warum könnte man die Verwendung von StandardScaler für den eigenen Datensatz überdenken?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen