Das Rohmaterial: Data Engineering für Machine Learning

Bevor die KI klug werden kann, müssen die Daten brav sein. Wie das gemacht wird.

Grundlagen 10 min Fortgeschritten 18. Mai 2026

Du hast gelernt, wie Modelle ihre Parameter über Gradient Descent und Regression optimieren. Aber was kommt IN das Modell hinein? Rohdaten aus der echten Welt sind chaotisch, unvollständig und auf völlig unterschiedlichen Skalen gemessen.

Dieser Artikel deckt die drei Säulen der Datenaufbereitung ab — die Arbeit, die passiert, bevor auch nur ein einziger Trainingsschritt stattfindet. Denn der teuerste GPU-Cluster der Welt kann kein Modell retten, das auf Datenschrott trainiert wird.

Feature Engineering: Die richtigen Eingaben wählen

Feature Engineering

AnalogieDefinition
Stell dir Feature Engineering wie das Vorbereiten von Zutaten für ein Rezept vor. Du kannst die beste Küchenausstattung und den begabtesten Koch haben — aber wenn die Zutaten verdorben, schlecht geschnitten oder ohne die richtigen Gewürze sind, wird das Gericht scheitern. Die richtigen Zutaten auswählen (Feature Selection), sie richtig vorbereiten (Feature Creation) und präzise abmessen (Encoding) entscheidet über das Ergebnis, bevor das Kochen überhaupt beginnt.

Beispiel

In der Küche kann ein erfahrener Koch manchmal schlechte Zutaten durch Technik retten. Ein ML-Algorithmus kann das nicht — er ist rein mechanisch und hat keine Intuition, um schlechte Features auszugleichen.

Betrachten wir ein konkretes Beispiel: Immobilienpreisvorhersage. Die Rohdaten enthalten eine Adresse als Text — für ein Modell praktisch nutzlos. Feature Engineering verwandelt sie in aussagekräftige Zahlen:

1
Rohdaten Adresse: "Musterstr. 42, 80331 München" — reiner Text, nicht verwertbar
2
Extraktion Postleitzahl extrahieren → 80331, Stadtteil zuordnen → "Altstadt-Lehel"
3
Engineered Feature Medianes Haushaltseinkommen des Stadtteils nachschlagen → 58.200 €/Jahr — hochprädiktiv!

Kategorische Daten wie Farben (rot, blau, grün) brauchen eine besondere Behandlung: One-Hot Encoding erstellt für jeden Wert eine eigene binäre Spalte (ist_rot, ist_blau, ist_grün). So kann der Algorithmus mit kategorialen Daten rechnen, ohne eine künstliche Reihenfolge aufzuzwingen.

Missverständnis: Mehr Features = besseres Modell

Falsch. Der Fluch der Dimensionalität (Curse of Dimensionality) zeigt: Ab einer bestimmten Anzahl von Features werden Modelle SCHLECHTER, nicht besser. Der Datenraum wird so dünn besiedelt, dass der Algorithmus keine zuverlässigen Muster mehr finden kann. Lieber 5 informative Features als 50 irrelevante.

Feature-Qualität übertrifft Modellkomplexität. Ein simples lineares Modell mit hervorragenden Features schlägt regelmäßig ein komplexes neuronales Netz mit schlechten Features.

Interaktiv: Die Data-Engineering-Pipeline

Drücke Play und beobachte, wie Rohdaten Schritt für Schritt aufbereitet werden.

Datenpipeline visualisiert

Die typische Datenaufbereitung in fünf Schritten: Von chaotischen Rohdaten über Bereinigung, Feature Engineering und Skalierung bis zum modellfertigen Datensatz.

RohdatenChaotisch, unvollständigQUELLEBereinigungFehlende WerteCLEANINGFeature Eng.Erstellen & AuswählenFEATURESSkalierungNormalisierenSCALINGMODELL-FERTIG
Schritt 0 von 5
Animation starten

Klicke auf "Abspielen", um die RAG-Pipeline Schritt für Schritt zu sehen.

Kernprinzip

Die Pipeline ist strikt sequenziell: Jeder Schritt baut auf dem vorherigen auf. Die Reihenfolge ist entscheidend — falsches Skalieren vor dem Split verursacht Data Leakage.

Fehlende Werte: Löcher in den Daten

Fehlende Werte (Missing Values)

AnalogieDefinition
Stell dir eine Patientenakte vor, bei der einige Felder leer sind. Was tust du? (a) Die gesamte Akte wegwerfen (Deletion), (b) den Durchschnittswert aller anderen Patienten eintragen (Imputation), oder (c) eine Notiz hinzufügen: "Dieses Feld wurde leer gelassen" — was selbst diagnostisch relevant sein kann (Indicator Variable). Jede Wahl hat Konsequenzen.

Beispiel

In der Medizin nutzt ein Arzt klinisches Urteilsvermögen für die Entscheidung. In ML muss die Wahl mechanisch VOR dem Training getroffen werden, nicht während.

Es gibt drei etablierte Strategien, jede mit klaren Vor- und Nachteilen:

Deletion (Löschen)

Einfach aber verschwenderisch: Alle Zeilen mit fehlenden Werten entfernen. Bei 20% fehlenden Werten schrumpft der Datensatz von 1.000 auf 800 Einträge.

Imputation (Ersetzen)

Datenerhaltend aber annahmenlastig: Leere Felder mit Median oder Mittelwert füllen. Behält alle 1.000 Einträge, nimmt aber "durchschnittliche Gesundheit" an.

Dritte Strategie: Indicator Variable

Die cleverste Option: Eine zusätzliche Spalte "bp_missing=1" erzeugen. Das Modell könnte entdecken, dass fehlender Blutdruck mit Notaufnahmen korreliert — Patienten, die zu kritisch für eine Messung waren. Die Abwesenheit der Daten wird selbst zum informativen Signal.

Konkretes Beispiel: Ein medizinischer Datensatz hat 20% fehlende Blutdruckwerte. Du vermutest, dass die Daten fehlen, weil adipöse Patienten die Messung verweigert haben. Deletion verliert 200 Datensätze. Median-Imputation mit 120 mmHg nimmt "Normalwert" an. Eine Indicator Variable deckt den eigentlichen Grund auf.

~80%
der Data-Science-Arbeitszeit fließt in Datenaufbereitung

Normalisierung & Standardisierung: Alles auf eine Skala bringen

Feature Scaling

AnalogieDefinition
Stell dir vor, du vergleichst die Entfernung Berlin–München mit der Zimmeranzahl einer Wohnung. Die eine wird in Kilometern gemessen (Hunderte), die andere in einstelligen Zahlen. Trägst du beides auf dieselbe Achse auf, erdrücken die Kilometerwerte die Zimmeranzahl völlig. Skalierung ist wie eine Einheitenumrechnung: Die tatsächlichen Abstände und Beziehungen zwischen den Datenpunkten bleiben identisch, nur die Messskala ändert sich.

Beispiel

In der echten Welt wählst du einfach passende Einheiten. In ML ist Skalierung eine mathematische Transformation, die aus den Trainingsdaten berechnet und konsistent auf Testdaten angewendet werden muss.
Min-Max-Normalisierung
xnorm = (x - xmin) / (xmax - xmin)
Z-Standardisierung
z = (x - μ) / σ

Rechenbeispiel: Drei Features skalieren

Drei Features mit völlig unterschiedlichen Bereichen: Alter (0–100), Einkommen (0–1.000.000), Zimmer (1–10). Datenpunkt: Alter=50, Einkommen=60.000, Zimmer=4.

Min-Max-Normalisierung:
Alter:     (50 - 0) / (100 - 0)         = 0,50
Einkommen: (60.000 - 0) / (1.000.000 - 0) = 0,06
Zimmer:    (4 - 1) / (10 - 1)            = 0,33

Alle Werte jetzt in [0, 1].
Z-Standardisierung (Mittelwert/Std.abw. gegeben):
Alter:     (50 - 40) / 15    = 0,67
Einkommen: (60.000 - 50.000) / 25.000 = 0,40
Zimmer:    (4 - 3) / 1,5     = 0,67

Alle Werte jetzt vergleichbar.

Ohne Skalierung wäre das Gradient-Descent-Update für Einkommen ca. 10.000-mal größer als für Zimmer — das verursacht Zickzack-Konvergenz statt direktem Weg zum Minimum.

Deep Dive: Warum Skalierung Gradient Descent beschleunigt

Unskalierte Features erzeugen stark in die Länge gezogene Konturen in der Loss-Landschaft. Gradient Descent springt dann im Zickzack über das schmale Tal hin und her, statt direkt zum Minimum zu laufen. Skalierte Features erzeugen annähernd kreisförmige Konturen — der Gradient zeigt direkt zum Minimum. Ergebnis: deutlich weniger Iterationen bis zur Konvergenz.

Missverständnis: Normalisierung verändert die Daten

Nein. Normalisierung ändert die Maßeinheit, nicht die Beziehungen zwischen den Datenpunkten. Nach Min-Max ist der ehemals größte Wert immer noch der größte (jetzt 1,0) und der kleinste immer noch der kleinste (jetzt 0,0). Die Datenstruktur bleibt intakt.

Deep Dive: Data Leakage — Die versteckte Falle

Data Leakage tritt auf, wenn Informationen aus den Testdaten versehentlich ins Training einfließen. Häufigster Fehler: Den Scaler (z.B. StandardScaler in scikit-learn) auf dem GESAMTEN Datensatz (Train + Test) fitten, bevor man splittet. Dann kennt der Scaler bereits die Statistiken der Testdaten — und das Modell erscheint besser als es wirklich ist. Du musst den folgenden Code nicht programmieren können — achte nur auf den logischen Unterschied, worauf der Scaler angewendet wird:

# FALSCH: Leakage!
scaler.fit(gesamter_datensatz)
X_train, X_test = split(gesamter_datensatz)

# RICHTIG: Kein Leakage
X_train, X_test = split(gesamter_datensatz)
scaler.fit(X_train)          # Nur Train!
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

Interaktiv: Pipeline-Schritte sortieren

In welcher Reihenfolge müssen die Schritte der Datenaufbereitung ausgeführt werden? Sortiere die Pipeline — aber Vorsicht: die falsche Reihenfolge verursacht Data Leakage!

Sortiere die Pipeline-Schritte in die korrekte Reihenfolge. Tipp: Denke an Data Leakage — welcher Schritt muss unbedingt früh kommen?

Erster Schritt
1.Train/Test Split
2.Feature Engineering
3.Features skalieren
4.Rohdaten laden
5.Fehlende Werte behandeln
Letzter Schritt

Kernaussagen

  • Ein Modell ist nur so gut wie seine Features — Feature Engineering (Auswählen, Erstellen und Encodieren der richtigen Eingaben) ist der größte Hebel für Modellqualität.
  • Echte Daten haben Löcher. Deletion ist einfach aber verschwenderisch, Imputation erhält Daten aber trifft Annahmen, und Indicator Variables können die Abwesenheit von Daten in ein nützliches Signal verwandeln.
  • Features auf unterschiedlichen Skalen sabotieren Gradient Descent. Normalisierung (0–1) und Standardisierung (Mittelwert=0, Std=1) beheben das — sie ändern die Maßeinheit, nicht die Bedeutung der Daten.

Lernziele

  • Erkläre an einem eigenen Beispiel, warum rohe Textdaten (z.B. eine Adresse) kein gutes Feature für ein ML-Modell sind.
  • Du hast einen Datensatz mit 30% fehlenden Temperaturwerten eines Sensors. Welche der drei Strategien würdest du wählen und warum?
  • Berechne die Min-Max-Normalisierung für den Wert x=75 bei einem Bereich von 0 bis 200.

Wissen testen

Frage 1 / 4
Noch offen

Dein Datensatz hat eine Spalte "Farbe" mit den Werten rot, blau, grün. Was musst du tun, bevor du sie in ein lineares Regressionsmodell gibst?

Wählen Sie eine Antwort
Auflösung: 1) C · 2) C · 3) B · 4) B