Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Cross-Validation

Bei der Kreuzvalidierung wird ein Modell mit k abwechselnden Aufteilungen eines Datensatzes trainiert und bewertet, um seine Generalisierungsfähigkeit einzuschätzen. Hier geht es um die Schritte der k-fachen Kreuzvalidierung, Varianten, Datenleckage und Code.

Kreuzvalidierung schätzt, wie gut ein Modell auf unbekannten Daten abschneidet, indem es mehrmals auf unterschiedlichen Aufteilungen desselben Datensatzes trainiert und ausgewertet wird und die Ergebnisse zusammengefasst werden. Bei der k-fachen Kreuzvalidierung werden die Daten in k gleich große Teile, sogenannte Folds, aufgeteilt. Jeder Fold dient einmal als Validierungsdatensatz, während das Modell auf den übrigen k − 1 Folds trainiert wird. Der Mittelwert der k Scores schätzt die Leistung, ihre Streuung zeigt, wie stark diese Schätzung davon abhängt, welche Beispiele zufällig in den Validierungsdatensatz gelangt sind. Kreuzvalidierung ist das übliche Auswertungsverfahren, wenn die Daten für einen einzigen zurückgehaltenen Split zu knapp sind, um einen verlässlichen Score zu liefern. Sie wird häufig zum Vergleichen von Algorithmen und zum Anpassen von Hyperparametern verwendet, ohne die Testdaten anzutasten.

So funktioniert die k-fache Kreuzvalidierung#

Der Datensatz wird einmal gemischt und in k Folds aufgeteilt, üblicherweise 5 oder 10. In jedem der k Durchläufe wird ein neues Modell trainiert: auf k − 1 Folds und ausgewertet auf dem verbleibenden Fold. So wird jedes Beispiel genau einmal zur Validierung und k − 1 Mal zum Training verwendet. Die k Scores werden gemittelt und zusammen mit ihrer Standardabweichung angegeben. Sobald die Kreuzvalidierung ein Modell oder einen Satz Hyperparameter ausgewählt hat, wird das endgültige Modell in der Regel mit diesen Einstellungen auf allen Trainingsdaten neu trainiert. Die Leave-one-out-Kreuzvalidierung ist der Extremfall, bei dem k der Anzahl der Beispiele entspricht. Dabei werden in jedem Durchlauf möglichst viele Daten zum Training verwendet, allerdings muss die gleiche Anzahl an Modellen wie an Beispielen trainiert werden.

Kreuzvalidierungs-Scores lesen#

Die Streuung zwischen den Folds ist ebenso aussagekräftig wie der Mittelwert. Das folgende Skript mit scikit-learn führt eine fünffache Kreuzvalidierung mit dem integrierten Brustkrebsdatensatz durch:

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import StratifiedKFold, cross_val_score
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler

# 569 labeled tumor samples with 30 features each
X, y = load_breast_cancer(return_X_y=True)

# The scaler sits inside the pipeline, so each round fits it on that round's training folds only
model = make_pipeline(StandardScaler(), LogisticRegression(max_iter=1000))

# 5 stratified folds: each sample is validated exactly once
folds = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)
scores = cross_val_score(model, X, y, cv=folds)
print("Fold accuracies:", scores.round(3))
print(f"Mean {scores.mean():.3f} +/- {scores.std():.3f}")

Die fünf Genauigkeitswerte der Folds reichen von 0.956 bis 1.000. Der Mittelwert beträgt 0.979 und die Standardabweichung 0.014. Bei einem einzelnen 80/20-Split wäre einer dieser fünf Werte herausgekommen; die Spannweite beträgt 4.4 Prozentpunkte. Wenn du den Skalierer in die Pipeline einfügst, bleibt der Validierungs-Fold aus den Statistiken der Datenvorverarbeitung ausgeschlossen. Würdest du zuerst den gesamten Datensatz skalieren, käme es zu einer Datenleckage zwischen jedem Validierungs-Fold und den Trainingsdaten.

Eine Variante der Kreuzvalidierung auswählen#

Bei der einfachen k-fachen Kreuzvalidierung wird angenommen, dass Beispiele unabhängig und austauschbar sind. Ist das nicht der Fall, führt eine zufällige Aufteilung zu Datenleckage oder Folds, die die Aufgabe nicht repräsentieren:

  • Stratifizierte k-fache Kreuzvalidierung: Hält den Klassenanteil in jedem Fold gleich dem des gesamten Datensatzes. Das ist wichtig, wenn eine seltene Klasse andernfalls in einem Fold fehlen könnte.
  • Gruppiertes k-Fold-Verfahren: Alle Beispiele einer Gruppe, etwa eines Patienten, Videos oder Standorts, bleiben im selben Fold. So wird das Modell nie an nahezu identischen Bildern aus dem Trainingsdatensatz validiert. Das stratifizierte gruppierte k-Fold-Verfahren kombiniert beide Vorgaben.
  • Zeitreihenaufteilung: Trainiert nur mit vergangenen Daten und validiert auf dem darauffolgenden Zeitraum. Bei jedem Durchlauf wird das Trainingsfenster vergrößert, denn beim Mischen zeitlich geordneter Daten würde das Modell die Zukunft sehen.
  • Verschachtelte Kreuzvalidierung: Führt in jedem äußeren Fold eine innere Kreuzvalidierungsschleife zur Anpassung der Hyperparameter aus. So wird der Score des äußeren Durchlaufs nicht dadurch erhöht, dass auf denselben Folds angepasst wird, auf denen er ermittelt wird.

Kreuzvalidierung beim Deep Learning#

Ein tiefes neuronales Netz k-mal zu trainieren, vervielfacht die Rechenkosten um den Faktor k. Deshalb wird bei großen Datensätzen wie ImageNet und COCO ein einziger fester Validierungssplit verwendet, der bereits groß genug für einen stabilen Score ist. Bei kleinen Bilddatensätzen mit einigen Hundert bis einigen Tausend Bildern lohnt sich die Kreuzvalidierung, da ein einzelner Validierungssplit möglicherweise nur eine Handvoll Beispiele pro Klasse enthält. Der Ultralytics-Leitfaden zur k-fachen Kreuzvalidierung teilt einen Erkennungsdatensatz mit KFold von scikit-learn in fünf Folds auf, erstellt für jeden Fold Listen der Trainings- und Validierungsbilder sowie eine YAML-Datei für den Datensatz und trainiert ein YOLO26-Modell pro Fold. Da Erkennungsbilder üblicherweise mehrere Klassen enthalten, können sie nicht anhand eines einzelnen Labels stratifiziert werden. Deshalb erfasst der Leitfaden für jede Klasse und jeden Fold auch das Verhältnis der Validierungslabels zu den Trainingslabels.

  • Validierung mit Zurückhalten: Ein einzelner Split, etwa 80/20, wird einmal ausgewertet. Das kostet einen Trainingsdurchlauf und eignet sich für große Datensätze. Der Score hängt davon ab, welche Beispiele im Validierungssplit landen.
  • Bootstrap-Verfahren: Erstellt Trainingsdatensätze durch Ziehen mit Zurücklegen und wertet jedes Modell anhand der Beispiele aus, die bei der Ziehung nicht ausgewählt wurden. Die k-fache Kreuzvalidierung unterteilt die Daten ohne Zurücklegen, sodass jedes Beispiel genau einem Fold angehört.
  • Auswertung mit einem Testsatz: Die Kreuzvalidierung wählt zwischen Modellen und Einstellungen aus. Ein separater Testsatz, der bei allen Folds außen vor bleibt, liefert die abschließende Schätzung für das ausgewählte Modell.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens