StandardScaler, MinMaxScaler, MaxAbsScaler
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.
Zur Veranschaulichung der Funktionsweise von Scaler werden die Merkmale 'culmen_depth_mm'
und 'body_mass_g'
aus dem penguins dataset betrachtet. Diese Merkmale können geplottet werden, um ihre Skalen zu beobachten.
MinMaxScaler
Der MinMaxScaler
arbeitet, indem er den Minimalwert subtrahiert (damit die Werte bei Null beginnen) und anschließend durch (x_max - x_min) teilt, sodass der Wert kleiner oder gleich 1 ist.
Hier ist das GIF, das zeigt, wie der MinMaxScaler
funktioniert:
MaxAbsScaler
Der MaxAbsScaler
arbeitet, indem er den maximalen Absolutwert ermittelt und jeden Wert durch diesen teilt. Dadurch wird sichergestellt, dass der maximale Absolutwert 1 ist.
StandardScaler
Die Idee 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 ein Programmierbeispiel 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. Mit Pipelines stellt dies jedoch kein Problem dar.
Es sollten nur die Merkmalsspalten (die X
-Variable) skaliert werden. Eine Skalierung der Zielvariable ist nicht erforderlich, da dies den Prozess der inversen Transformation erschweren würde.
Welchen Skalierer verwenden?
Ein StandardScaler
ist empfindlicher gegenüber Ausreißern und daher weniger als Standardskalierer geeignet. Falls eine Alternative zum StandardScaler
bevorzugt wird, hängt die Wahl zwischen MinMaxScaler
und MaxAbsScaler
von den eigenen Präferenzen ab, ob die Daten mit dem MinMaxScaler
auf den Bereich [0,1] oder mit dem MaxAbsScaler
auf [-1,1] skaliert werden sollen.
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
Awesome!
Completion rate improved to 3.13
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.
Zur Veranschaulichung der Funktionsweise von Scaler werden die Merkmale 'culmen_depth_mm'
und 'body_mass_g'
aus dem penguins dataset betrachtet. Diese Merkmale können geplottet werden, um ihre Skalen zu beobachten.
MinMaxScaler
Der MinMaxScaler
arbeitet, indem er den Minimalwert subtrahiert (damit die Werte bei Null beginnen) und anschließend durch (x_max - x_min) teilt, sodass der Wert kleiner oder gleich 1 ist.
Hier ist das GIF, das zeigt, wie der MinMaxScaler
funktioniert:
MaxAbsScaler
Der MaxAbsScaler
arbeitet, indem er den maximalen Absolutwert ermittelt und jeden Wert durch diesen teilt. Dadurch wird sichergestellt, dass der maximale Absolutwert 1 ist.
StandardScaler
Die Idee 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 ein Programmierbeispiel 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. Mit Pipelines stellt dies jedoch kein Problem dar.
Es sollten nur die Merkmalsspalten (die X
-Variable) skaliert werden. Eine Skalierung der Zielvariable ist nicht erforderlich, da dies den Prozess der inversen Transformation erschweren würde.
Welchen Skalierer verwenden?
Ein StandardScaler
ist empfindlicher gegenüber Ausreißern und daher weniger als Standardskalierer geeignet. Falls eine Alternative zum StandardScaler
bevorzugt wird, hängt die Wahl zwischen MinMaxScaler
und MaxAbsScaler
von den eigenen Präferenzen ab, ob die Daten mit dem MinMaxScaler
auf den Bereich [0,1] oder mit dem MaxAbsScaler
auf [-1,1] skaliert werden sollen.
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!