Normalisierung: Ein essenzieller Schritt in der Datenvorverarbeitung für Maschinelles Lernen

Die Qualität der Eingabedaten hat einen erheblichen Einfluss auf die Leistung von maschinellen Lernmodellen. Eine zentrale Technik in der Datenvorverarbeitung ist die Normalisierung, die sicherstellt, dass numerische Merkmale in einer konsistenten Größenordnung vorliegen. Doch warum ist das so wichtig, und wie funktioniert es?

Warum ist Normalisierung notwendig?

Viele Algorithmen des maschinellen Lernens sind empfindlich gegenüber großen Wertebereichen und Skalierungsunterschieden zwischen Variablen. Beispielsweise könnte ein Datensatz folgende Merkmale enthalten:

MerkmalWertebereich
Alter18 – 90
Einkommen20.000 – 500.000 €

Ohne Normalisierung würde das Einkommen das Alter in den Berechnungen dominieren, weil es in einer viel größeren Größenordnung liegt. Dadurch könnten Gewichte in Modellen wie linearen Regressionen oder neuronalen Netzen verzerrt werden.

Algorithmen, die stark von der Normalisierung profitieren:

Algorithmen, die weniger betroffen sind:

Methoden der Normalisierung

Es gibt verschiedene Methoden, um numerische Daten zu normalisieren. Die Wahl der richtigen Methode hängt vom Datensatz und dem verwendeten Algorithmus ab.

1. Min-Max-Skalierung (Min-Max-Normalisierung)

Diese Methode transformiert alle Werte auf eine Skala von 0 bis 1 oder von -1 bis 1.

Formel:

Dabei sind:

  • X′X’ der normalisierte Wert
  • XX der ursprüngliche Wert
  • Xmin⁡X_{\min} das Minimum der Spalte
  • Xmax⁡X_{\max} das Maximum der Spalte

Vorteil: Erhält die ursprüngliche Verteilung der Daten.
Nachteil: Empfindlich gegenüber Ausreißern, da ein einzelner Extremwert das Skalierungsintervall stark beeinflussen kann.

Anwendung in Python:

from sklearn.preprocessing import MinMaxScaler
import numpy as np

data = np.array([[18], [25], [40], [60], [90]])  # Beispiel: Alterswerte
scaler = MinMaxScaler()
normalized_data = scaler.fit_transform(data)

print(normalized_data)

2. Z-Score-Normalisierung (Standardisierung)

Hierbei werden die Werte so transformiert, dass sie eine mittlere von 0 und eine Standardabweichung von 1 haben.

Formel:

Dabei sind:

  • μ\mu der Mittelwert
  • σ\sigma die Standardabweichung

Vorteil: Gut geeignet für Daten mit unterschiedlichen Wertebereichen und Ausreißern.
Nachteil: Kann schwieriger zu interpretieren sein, da die Werte negativ werden können.

Anwendung in Python:

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
standardized_data = scaler.fit_transform(data)

print(standardized_data)

3. Logarithmische Skalierung

Diese Methode wird oft verwendet, wenn die Daten stark schief verteilt sind (z. B. Einkommen oder Einwohnerzahlen).

Formel: X′=log(X+1)

Vorteil: Reduziert den Einfluss großer Werte und macht die Verteilung symmetrischer.
Nachteil: Funktioniert nicht für negative Werte.

Anwendung in Python:

import numpy as np

log_transformed_data = np.log1p(data)
print(log_transformed_data)

Wann sollte welche Normalisierungsmethode verwendet werden?

MethodeWann verwenden?
Min-Max-SkalierungWenn alle Features ähnlich skaliert sein sollen (z. B. für neuronale Netze).
Z-Score-NormalisierungWenn die Daten unterschiedlich skaliert sind und robust gegenüber Ausreißern sein sollen.
Log-SkalierungWenn die Daten stark verzerrt sind (z. B. Einkommen, Verkaufszahlen).

Fazit

Normalisierung ist ein essenzieller Schritt in der Datenvorverarbeitung, der die Leistung vieler Algorithmen verbessert. Die Wahl der richtigen Methode hängt von den Daten und dem verwendeten Modell ab. Während Min-Max-Skalierung für neuronale Netze nützlich ist, bietet die Z-Score-Normalisierung Vorteile bei statistischen Modellen. In allen Fällen gilt: Vor der Modellierung immer prüfen, ob eine Normalisierung notwendig ist!