Scaling

Scaling bzw. zu deutsch Skalierung ist ein wichtiger Schritt im Preprocessing und dient meist als letzte Vorbereitung der Daten auf die Trainingsphase der verschiedenen Machine Learning Modelle. Während der Skalierung werden die einzelnen Attribute des Datensatzes vereinfacht gesagt miteinander vergleichbar gemacht, indem ihre Skalen aneinander angepasst werden. Je nach Attribut können große Unterschiede im Wertebereich vorliegen, die je nach Algorithmus das Machine Learning wesentlich beeinflussen können. Daher werden die Skalen der Daten durch das Scaling aneinander angeglichen. Ein weiterer Vorteil der Skalierung der Daten liegt darin, dass das Training einiger Modelle durch die kleineren Wertebereiche beschleunigt wird. Im Falle von Neuronalen Netzen müssen die Gewichte der Neuronen insgesamt weniger angepasst werden, wodurch schneller ein Optimum erreicht ist. Dieser Artikel stellt die wichtigsten Verfahren der Skalierung vor und visualisiert, wie die Daten dadurch verändert werden.

StandardScaler #

Das sogenannte Standardisieren der Daten ist die am meisten genutzte Form der Skalierung. Die Transformation der Attribute erfolgt dabei nach der folgenden Formel:

z=(x- mean(x)) / stdev(x)

Je Attribut wird von allen Werten der Mittelwert des Attributs subtrahiert und anschließend durch die Standardabweichung dividiert. Somit entsteht eine neue Verteilung mit dem Mittelwert 0 und der Standardabweichung von 1. Dieser Vorgang wird daher auch als Standardisierung bezeichnet. Die transformierten Daten sind zwar um 0 zentriert, jedoch sind untere und obere Grenze nicht fest und von den Daten abhängig. Die Abbildungen zeigen, wie sich der Wertebereich des Attributs verschiebt, die Verteilung aber von der Form her unbeeinflusst bleibt.

Originale Daten mit Verlauf über Zeit (oben) und Histrogram (unten)
Standardisierte Daten nach der Transformation durch die Skalierung

MinMaxScaler #

Eine weitere Variante der Skalierung ist die Normalisierung der Daten. Die Transformation der Daten erfolgt dabei nach der Formel:

z=(x-min(x)) / (max(x)-min(x))

Beim MinMaxScaling verändert leicht die Formel, dass mit den Parametern a und b die untere und obere Grenze der Skalierung festgesetzt werden können. In den allermeisten Fällen werden als Grenzen jedoch 0 und 1 verwendet, wodurch die obige Formel zustande komme. Im Gegensatz zur Standardisierung ist daher der transformierte Wertebereich aller Attribute genau gleich, jedoch unterscheiden sich Mittelwert und Standardabweichung weiterhin. 

Originale Daten mit Verlauf über Zeit (oben) und Histrogram (unten)
Normalisierte Daten nach der Transformation durch die Skalierung

Standardisierung Vs. Normalisierung #

Die folgende Abbildung zeigt noch einmal sehr gut die Unterschiede zwischen Standardisierung und Normalisierung der Daten. Je nach Art der Transformation wird der Wertebereich um 0 herum zentriert, oder auf den Bereich zwischen 0 und 1 gebracht.

Beide Varianten haben ihre Vorteile und Nachteile – je nach Art der Anwendung macht jedoch nicht jede Skalierung Sinn. Bspw. bei der Bildverarbeitung hat jeder Pixel einen Wert von 0 bis 255. Diese Art von Daten werden immer normalisiert –  eine Standardisierung würde keinen Sinn machen, da negative Werte in Bezug auf den Wert eines Pixels nicht sinnvoll sind.

Vergleich zwischen Normalisierung und Standardisierung (Quelle)

Weiterführende Links:
StandardScaler (Sklearn): https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html
MinMaxScaler (Sklearn): https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html
All about Feature Scaling: https://towardsdatascience.com/all-about-feature-scaling-bcc0ad75cb35

Schreibe einen Kommentar