Overfitting / Underfitting
Zwei fundamentale Probleme beim Machine Learning: Overfitting bedeutet, das Modell lernt Trainingsdaten auswendig; Underfitting bedeutet, es lernt zu wenig.
Kreuzvalidierung ist ein Verfahren, um die Leistung eines Machine-Learning-Modells zuverlässig zu schätzen, indem die Daten mehrfach in Trainings- und Testteile aufgeteilt und die Ergebnisse gemittelt werden.
Kreuzvalidierung (englisch Cross-Validation) ist ein Verfahren, um abzuschätzen, wie gut ein Machine-Learning-Modell auf neuen, ungesehenen Daten funktionieren wird. Das Problem: Wer ein Modell nur an einem einzigen Test-Datensatz misst, riskiert ein zufälliges Ergebnis – die Aufteilung könnte zufällig besonders leicht oder besonders schwer ausgefallen sein.
Kreuzvalidierung löst das, indem sie die Daten mehrfach unterschiedlich aufteilt, das Modell mehrmals trainiert und testet, und die Ergebnisse mittelt. Das Resultat ist eine deutlich verlässlichere Einschätzung der echten Leistung.
Das gängigste Verfahren teilt die Daten in k Folds:
Bei k=5 wird das Modell also fünfmal trainiert, jeder Datenpunkt ist genau einmal Validierung und viermal Training.
| Variante | Einsatz |
|---|---|
| Stratified k-Fold | unausgewogene Klassen – Verteilung pro Fold erhalten |
| Leave-One-Out | sehr kleine Datensätze – k = Anzahl Datenpunkte |
| Time Series Split | Zeitreihen – nur Vergangenheit darf Zukunft vorhersagen |
Die Kreuzvalidierung dient dem Modell- und Hyperparameter-Vergleich. Der finale, unberührte Testdatensatz wird erst ganz am Ende verwendet – sonst fließt Wissen über die Testdaten ins Modell ein und die Schätzung wird zu optimistisch.
Kreuzvalidierung ist wie eine Prüfung mit mehreren Probeläufen: Statt das Wissen nur an einer einzigen Aufgabe zu testen, prüft man es an mehreren verschiedenen Aufgabensätzen und nimmt den Durchschnitt. So erkennt man echtes Können statt zufälligen Glücks bei einer leichten Aufgabe.
Teilt die Daten mehrfach in Trainings- und Validierungsmengen, um die Leistung robust zu schätzen
Reduziert die Abhängigkeit von einer einzelnen, womöglich glücklichen Datenaufteilung
k-fache Kreuzvalidierung ist die gängigste Variante
Modellvergleich
Mehrere Modelle fair vergleichen, ohne dass eine zufällige Aufteilung das Ergebnis verfälscht
Hyperparameter-Tuning
Beste Einstellungen wählen, ohne die Testdaten zu verbrauchen
Kleine Datensätze
Bei wenig Daten jeden Datenpunkt sowohl zum Training als auch zur Validierung nutzen
Die Daten werden in k gleich große Teile (Folds) zerlegt. Das Modell wird k-mal trainiert: Jedes Mal dient ein anderer Fold als Validierungsmenge, die übrigen k-1 als Training. Die k Ergebnisse werden gemittelt. Üblich sind k=5 oder k=10.
Ein einzelner Split kann zufällig günstig oder ungünstig ausfallen und so ein verzerrtes Bild der Modellleistung liefern. Kreuzvalidierung mittelt über mehrere Aufteilungen und liefert dadurch eine stabilere, verlässlichere Schätzung.
Bei unausgewogenen Klassen sorgt die stratifizierte Variante dafür, dass in jedem Fold die Klassenverteilung der Gesamtdaten erhalten bleibt. Das verhindert, dass ein Fold versehentlich kaum Beispiele einer seltenen Klasse enthält.