Der MinMax Scaler ist eine Variante, um die Trainingsdaten eines Machine Learning Modells zu normalisieren, also die numerischen Werte auf eine einheitliche Skala zu bringen. Dies führt dazu, dass das Modell schneller lernen und konvergieren kann, da der Gradient sich einheitlicher verändert und nicht durch die unterschiedlichen Skalen große Sprünge macht.
Was bedeutet Normalisierung im Deep Learning?
Die Normalisierung von Daten bedeutet, dass alle Features des Modells auf eine einheitliche Skala gebracht werden. Dafür wird meist der Bereich zwischen 0 und 1 oder zwischen -1 und 1 gewählt. In der Realität haben numerische Features normalerweise auch unterschiedliche Skalen. Wenn wir beispielsweise das Alter einer Person und dessen Gehalt nehmen, dann ist ein Alter von 100 Jahren sehr hoch, während ein monatlicher Verdienst von 100 € eher gering einzuschätzen ist.
Die Normalisierung wird auch nur dann genutzt, wenn die zugrundeliegenden Daten keiner Gauss’schen Normalverteilung folgen. Wenn man also annimmt, dass das Gehalt und das Alter normalverteilt sind, sollte man keine Normalisierung vornehmen.
Warum sollte man Daten vor dem Modelltraining normalisieren?
Die Normalisierung von Daten hat viele positive Eigenschaften auf das Training von Machine Learning Modellen. Jedoch sollte darauf geachtet werden, dass sie genutzt wird, wenn das genutzt Modell keine Normalverteilung der Daten voraussetzt, wie das beispielsweise bei einem Neuronalen Netzwerk der Fall ist. Wenn man hingegen Modelle, wie LDA, Gaussian Naive Bayes oder Logistic Regression nutzt, sollte auf eine Normalisierung verzichtet werden und stattdessen eine Standardisierung genutzt werden.
Die folgenden Vorteile ergeben sich durch die Normalisierung von Daten:
- Durch die Nutzung einer einheitlichen Skala, gibt es keinen Bias des Modells hin zu großen Zahlenwerten. Andernfalls könnten Features, die von Natur aus höhere Zahlen haben, mehr zur Modellvorhersage beitragen als andere.
- Das Training verläuft gleichmäßiger, da es keine großen Sprüngen in den Zahlen gibt, die zu Unregelmäßigkeiten führen könnten. Dadurch können höhere Lernraten genutzt werden und das Training wird beschleunigt.
- Durch die Normalisierung kann auch das Risiko eines Internal Covariate Shifts verringert werden. Der Internal Covariate Shift bezeichnet das Phänomen, wenn die Hidden Layers eines Neuronalen Netzwerks auf eine Änderung der Verteilung der Inputwerte reagieren. Dadurch ändern sich die Gewichtungen in den Schichten sehr stark und das Modell konvergiert nicht.
Was ist der Unterschied zwischen Standardisierung und Normalisierung?
Die Normalisierung von Daten beschreibt den Prozess, numerische Werte auf eine einheitliche Skala zu bringen, beispielsweise in den Bereich zwischen 0 und 1 oder zwischen -1 und 1. Die Normalisierung sollte vor allem verwendet werden, wenn die zugrundeliegende Daten keiner Normalverteilung folgen.
Die Standardisierung bewirkt zwar in vielen Fällen auch, dass die Werte in einer einheitlichen Skala liegen, hat aber eigentlich das Ziel die Verteilung der Werte so zu verändern, dass sie einen Mittelwert von 0 und eine Standardabweichung von 1 haben. Die Standardisierung wird also genutzt, damit alle numerischen Inputwerte einer gleichen Verteilung folgen.
Die Normalisierung wird stark von Ausreißern beeinflusst, also von Datenpunkten, die deutlich größere oder kleinere Werte annehmen, als die umliegenden Datenpunkte. Durch die Skalierung in einheitliche Werte liegen die restlichen Werte sehr stark beieinander und nehmen sehr ähnliche Werte an. Dadurch ist eine Unterscheidung zwischen diesen Werten kaum möglich. Deshalb sollten vor der Normalisierung Ausreißer aus dem Datensatz beseitigt werden.
Die Standardisierung hingegen wird von Ausreißern wenig bis gar nicht beeinflusst. Dadurch, dass keine Skalierung in festen Grenzen stattfindet, können die Ausreißer an den äußeren Enden der Normalverteilung liegen. Somit bleibt auch die Information der Ausreißer im Modell erhalten.
Abhängig vom gewählten Modell, das trainiert werden soll, ergibt sich auch, ob die Daten standardisiert oder normalisiert werden können. Manche Modelle setzen eine Normalverteilung von Daten voraus, weshalb für diese auch nur eine Standardisierung verwendet werden sollte. Dazu gehören beispielsweise LDA, Gaussian Naive Bayes oder die Logistische Regression. Für Neuronale Netzwerke hingegen kann die Normalisierung verwendet werden, da keine Verteilung der Daten vorausgesetzt wird.
Wie funktioniert der MinMax Scaler?
Der MinMax Scaler ist eine Form der Normalisierung, der die Werte zwischen 0 und 1 skaliert. Er erhält seinen Namen, da für die Normalisierung der Maximal- und Minimalwert des Features genutzt wird. Die konkrete Formal des MinMax Scalers ist:
\(\) \[x_{\text{scaled}} = \frac{x – x_{\text{min}}}{x_{\text{max}} – x_{\text{min}}}\]
MinMax Scaler vs. Standard Scaler
In der Praxis stellt sich oft die Frage, ob man den MinMax Scaler oder den Standard Scaler nutzen soll. Zwar nennen sich beide Scaler, jedoch handelt es sich beim MinMax Scaler um eine Normalisierung und beim Standard Scaler um eine Standardisierung. Somit haben beide verschiedene Anwendungsbereiche, da der MinMax Scaler die Werte auf eine einheitliche Skale bringt, während der Standard Scaler eine Normalverteilung der Daten herbeiführt.
Somit hängt die Verwendung der beiden Methoden von dem zu trainierenden Modell ab und ob eine Normalisierung oder eine Standardisierung der Daten vorgenommen werden soll.
Was sind die Vor- und Nachteile des MinMax Scalers?
Der MinMax Scaler ist eine beliebte Technik, um Eigenschaften in einem Datensatz auf einen festen Wertebereich zu skalieren. Zu den Vorteilen dieser Skalierungstechnik zählen unter anderem:
- Einfachheit: Durch die Implementierung in gängigen Machine Learning Bibliotheken, wie beispielsweise scikit-learn, kann der Scaler ohne weiteres geladen und mit wenigen Zeilen Code genutzt werden.
- Beibehaltung der Beziehungen: Durch die Definition des MinMax Scalers ist sichergestellt, dass die Reihenfolge der Datenpunkte erhalten bleibt. Außerdem wird auch der relative Abstand der Datenpunkte weitestgehend erhalten, sodass es eine beliebte Methode für Machine Learning Modelle geworden ist, da der Informationsgehalt der Daten erhalten bleibt.
- Kompatibilität mit abstandsbasierten Algorithmen: Vor allem bei abstandsbasierten Algorithmen, wie beispielsweise dem k-nearest neighbors oder dem Clustering, ist der MinMax Scaler sehr beliebt, da die Ähnlichkeit zwischen den Datenpunkten erhalten bleibt.
- Behält die Interpretierbarkeit bei: Der MinMax Scaler ändert die Einheiten und Bereich der ursprünglichen Daten nicht, sodass die neuen Datenpunkte leicht interpretiert und verstanden werden können. Je nach Anwendung spielt die Interpretierbarkeit eine entscheidende Rolle. Dafür bietet sich der MinMax Scaler an.
Neben diesen Argumenten für die Verwendung des MinMax Scalers sollten jedoch auch die Nachteile der Skalierungsmethode vor dem Einsatz bedacht werden und auf den jeweiligen Anwendungsfall abgestimmt sein:
- Empfindlichkeit gegenüber Ausreißern: Ausreißer können die Leistung des MinMax Scalers stark beeinflussen, da sie direkt in die Berechnung der Werte mit reinspielen. Wenn einem Datensatz ein extremer Ausreißer hinzugefügt wird, können sich die Werte der Skalierung stark verändern, sodass möglicherweise ein Großteil der Datenpunkte sehr nahe beieinander liegt.
- Begrenzter Bereich: Die Werte des MinMax Scalers befinden sich immer im Bereich zwischen 0 und 1. Je nach Anwendung kann diese Datenverteilung für eine effektive Analyse ungeeignet sein und es wird ein größerer Datenbereich, wie beispielsweise zwischen -1 und 1 benötigt.
- Auswirkungen auf die Datenverteilung: Bei schiefen Verteilungen oder extremen Werten kann es passieren, dass die Verteilung der Ursprungsdaten nach der Skalierung verändert wird. Dies kann bei bestimmten Algorithmen erhebliche Auswirkungen auf die Vorhersageleistung haben.
- Abhängigkeit vom Datenbereich: Außerdem sollte beachtet werden, dass die Leistung des MinMax Scalers auch vom Datenbereich der Ursprungsdaten abhängt. Wenn die Datenpunkte bereits in einem engen Datenbereich liegen, kann es passieren, dass der MinMax Scaler die Variationen nicht angemessen erfassen kann.
Die Kenntnis dieser Vor- und Nachteile hilft dabei die Entscheidung für oder gegen die Nutzung des MinMax Scalers zu treffen. Diese Wahl sollte abhängig von den spezifischen Merkmalen des Datensatzes und der Attribute gemacht werden.
Wie kann man den MinMax Scaler in Python benutzen?
Dadurch dass der MinMax Scaler in der Machine Learning Bibliothek Scikit-Learn enthalten ist, kann diese Skalierungsmethode sehr einfach in Python genutzt werden. In diesem Abschnitt schauen wir uns die einzelnen Schritte mit Beispieldaten genauer an.
- Importiere aus Scikit-Learn die entsprechende Funktion.
- Erstelle beispielhafte Daten und eine Instanz des MinMax Scalers, die Du unter der Namen “scaler” ablegst.
- Der Scaler muss dann an die entsprechenden Daten angepasst werden.
In unserem Beispiel haben die Daten eine zweidimensionale Struktur und sind in einer Liste von Listen abgespeichert.
- Nun können die Daten mithilfe von “transform” skaliert werden.
Auf Grundlage des angepassten Scalers werden die neuen Werte errechnet. Mithilfe von “fit_transform” lässt sich die Anpassung an die Daten und die tatsächliche Skalierung ein einem Schritt kombinieren.
Wie man sieht wird jede Spalte des Datensatzes auf der Grundlage der jeweiligen Minimal- und Maximalwerte skaliert. Bei dem Training eines Machine Learning Modells ist es wichtig, dass der Skalierer lediglich an die Trainingsdaten angepasst wird und dann jedoch sowohl auf die Trainings- als auch auf die Testdaten angewandt wird. Dadurch ist die Konsistenz des Skalierungsprozesses sichergestellt.
Mithilfe von “inverse_transform” können die skalierten Werte, wieder in die ursprünglichen Werte umgewandelt werden. Dies kann beispielsweise nützlich sein, um die Interpretation im ursprünglichen Datenbereich vornehmen können.
Mithilfe dieser wenigen Schritte können Daten in Python mit dem MinMax Scaler transformiert werden. Dies ist ein wichtiger Vorbereitungsschritt um den Datensatz dann später einem Machine Learning Modell weitergeben zu können.
Das solltest Du mitnehmen
- Der MinMax Scaler ist eine Methode zur Normalisierung von Daten. Dabei werden numerische Werte in einem Datensatz auf eine einheitliche Skala zwischen 0 und 1 gebracht.
- Die Normalisierung von Daten kann für Modelle genutzt werden, die keine Normalverteilung der numerischen Werte voraussetzen. Vor allem Neuronale Netzwerke arbeiten mit Datennormalisierung.
- Durch die Normalisierung der Werte haben die Modelle keinen Bias für Features, die höhere numerische Werte annehmen.
Was ist Decentralised AI?
Das Potenzial von decentralised AI freisetzen: Transformation der Technologie durch verteilte Intelligenz und kollaborative Netzwerke.
Was ist die Ridge Regression?
Erforschung der Ridge Regression: Vorteile, Implementierung in Python und die Unterschiede zu Ordinary Least Squares (OLS).
Was ist eine Aktivierungsfunktion?
Erfahren Sie mehr über die Bausteine des Deep Learnings: Maximieren Sie die Modellleistung mit der richtigen Aktivierungsfunktion.
Was ist die Regularisierung im Machine Learning?
Regularisierung verstehen: Erfahren Sie, wie Regularisierungstechniken die Modellleistung verbessern und eine Überanpassung verhindern.
Was ist ein Conditional Random Field (CRF)?
Entfesseln Sie die Macht der Conditional Random Fields: Entdecken Sie fortgeschrittene Techniken und Anwendungen in diesem Leitfaden.
Was ist die Schwarmintelligenz?
Entdecken Sie die Kraft der Schwarmintelligenz - ein System, das von der kollektiven Intelligenz sozialer Lebewesen inspiriert ist.
Andere Beiträge zum Thema MinMax Scaler
Die Dokumentation des MInMax Scaler in Scikit-Learn findest Du hier.