EMZETT.
Login

Ausreißer und fehlende Werte: Daten vor dem Training aufräumen

Kurz: Bevor Modelle trainieren, müssen fehlende Werte behandelt und Ausreißer geprüft werden; sonst verzerren sie Mittelwerte und Ergebnisse.

Genauer: Reale Daten sind unvollständig und enthalten Fehler und Extreme. Der Umgang damit entscheidet oft mehr über die Ergebnisse als die Wahl des Modells. Ziel ist nicht, Daten „schön“ zu machen, sondern begründete Entscheidungen zu treffen und zu dokumentieren.

Im Detail

Fehlende Werte

Zuerst fragen: Warum fehlt der Wert? (zufällig, systematisch, nicht erhoben?). Optionen:

  • Zeilen oder Spalten löschen, wenn wenig betroffen ist.
  • Ersetzen (Imputation) durch Mittelwert, Median (robuster), häufigsten Wert, den letzten gültigen Wert (Zeitreihen) oder per Modell (KNN-Imputer).
  • Einen Indikator anlegen („war fehlend“), denn Fehlen kann selbst informativ sein.
df["alter"] = df["alter"].fillna(df["alter"].median())
df.isna().sum()

Imputiere erst nach der Aufteilung in Training und Test mit Werten aus dem Training, um Datenlecks zu vermeiden.

Ausreißer erkennen

  • Boxplot-Regel (IQR): Werte jenseits von Q1 − 1,5·IQR bzw. Q3 + 1,5·IQR.
  • Z-Wert: mehr als 3 Standardabweichungen vom Mittelwert (nur bei annähernd normalverteilten Daten sinnvoll).
  • Visualisierung: Histogramm, Boxplot, Streudiagramm.
  • Modelle: Isolation Forest, DBSCAN, Local Outlier Factor.

Was tun mit Ausreißern?

Prüfe zuerst, ob es ein Messfehler oder Tippfehler ist (Alter 250, Gewicht −5) oder ein echter seltener Fall (Millionär in Einkommensdaten, Betrug). Fehler korrigieren oder entfernen, echte Extremwerte behalten, falls sie wichtig sind (zum Beispiel Betrugserkennung). Alternativen: Winsorizing (auf Grenzwerte kappen), Log-Transformation, robuste Verfahren (Median, Huber-Verlust, Baummodelle).

Dokumentation und Gefahren

Halte jede Bereinigung fest (Skript statt Handarbeit in der Tabelle), damit sie reproduzierbar ist. Aggressives Entfernen kann Minderheiten oder seltene Gruppen unsichtbar machen und Verzerrungen verstärken. Teste, wie stark sich Ergebnisse durch deine Entscheidungen ändern (Sensitivitätsanalyse).

Siehe auch: Datenbereinigung mit pandas, pandas, Verzerrung, Fairness und Datenqualität, matplotlib