Kreuzvalidierung (englisch Cross-Validation) ist ein Verfahren, um die Güte eines Machine-Learning-Modells zuverlässig zu schätzen, ohne sich von einem einzigen günstigen Daten-Split blenden zu lassen. Statt das Modell einmal auf Trainingsdaten zu trainieren und einmal zu testen, wird es mehrfach trainiert und ausgewertet - mit wechselnden Aufteilungen.
So funktioniert die k-Faltige Kreuzvalidierung
Beim Standardverfahren, der k-Fold-Cross-Validation, werden die Daten in k gleich große F alten (Folds) aufgeteilt, üblich sind k = 5 oder k = 10:
- Das Modell wird auf k - 1 F alten trainiert.
- Der verbleibende Fold dient als Validierungsdaten.
- Dies wird k-mal wiederholt, sodass jeder Fold genau einmal als Validierungsdaten dient.
- Die k Einzelergebnisse werden zum mittleren Bewertungswert (z.B. Accuracy) zusammengefasst.
So nutzt das Verfahren fast alle Daten sowohl zum Lernen als auch zur Prüfung - und die Schätzung ist deutlich stabiler als bei einer einzelnen zufälligen Aufteilung.
Wozu Kreuzvalidierung gut ist
- Modellwahl: Beim Hyperparameter-Tuning bewertet die Kreuzvalidierung jede Kandidaten-Konfiguration und macht Grid Search und Random Search erst zuverlässig.
- Overfitting-Erkennung: Ein Modell, das in der Kreuzvalidierung schlecht abschneidet, hat die Trainingsdaten auswendig gelernt statt gelernt - ein klassisches Zeichen für Overfitting.
- Underfitting-Erkennung: Sind alle F alt-Ergebnisse gleichermaßen schlecht, ist das Modell zu simpel - Underfitting.
Varianten
- Stratified k-Fold: Bei Klassifikation wird die Klassenverteilung in jedem Fold erhalten - wichtig bei unbalancierten Daten.
- Leave-One-Out (LOOCV): k entspricht der Anzahl der Beispiele; jedes Beispiel dient einmal allein als Validierungsdaten. Präzise, aber bei großen Datenmengen extrem rechenintensiv.
- Wiederholte Kreuzvalidierung: Der gesamte k-Fold-Lauf wird mehrfach mit anderen Aufteilungen ausgeführt, um die Streuung der Schätzung zu sehen.
Typische Fehler
Das größte Risiko ist ein Datenleck: Werden Informationen aus den Validierungsdaten - etwa beim Feature Engineering - schon vor der Aufteilung in die Trainingsdaten eingerechnet, wird der Bewertungswert zu optimistisch. Skalierung und Normalisierung müssen deshalb innerhalb jedes Folds separat berechnet werden.
Verwandte Konzepte: Trainingsdaten und überwachtes Lernen bilden den Rahmen, in dem Kreuzvalidierung typischerweise eingesetzt wird.