KI‑Kompass
Kompass

Kreuzvalidierung und Datensplits

Wie man Daten aufteilt, ohne sich selbst zu betrügen: k-fache Validierung, gruppierte und zeitliche Splits und der Testsatz, den man genau einmal anfasst.

·2 Min. Lesezeit·Von Fachredaktion Technik
DETAILGRAD
3 Abschnitte

Die Idee

Wer eine Prüfung mit genau den Aufgaben schreibt, die er geübt hat, erfährt nichts über sein Können. Deshalb hält man einen Teil der Daten zurück und rührt ihn während der ganzen Entwicklung nicht an.

Die drei Teile

TeilWofürWie oft angefasst
TrainingDas Modell anpassenständig
ValidierungHyperparameter und Schwellwerte wählenoft
TestDie endgültige Zahl belegengenau einmal

Welcher Split zu welchen Daten

DatenlageVerfahrenWarum
Unabhängige FälleKFold, StratifiedKFoldStandard
Mehrere Fälle je Person oder KundeGroupKFoldSonst steht dieselbe Person in beiden Teilen
ZeitreiheTimeSeriesSplitZukunft darf die Vergangenheit nicht erklären
Sehr wenige DatenRepeatedStratifiedKFoldSchätzung wird ruhiger
Sehr seltene KlasseStratifiziert, plus BootstrapSonst enthalten Faltungen null Positive
import numpy as np
from sklearn.model_selection import GroupKFold, cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=900, n_features=12, random_state=0)
kunde = np.repeat(np.arange(90), 10)          # 10 Faelle je Kunde

zufaellig = cross_val_score(LogisticRegression(max_iter=2000), X, y, cv=5)
gruppiert = cross_val_score(LogisticRegression(max_iter=2000), X, y,
                            cv=GroupKFold(5), groups=kunde)
print("zufaellig ", zufaellig.mean().round(3))
print("gruppiert ", gruppiert.mean().round(3))
# Die zweite Zahl ist die ehrliche. Die Luecke ist das Ausmass des Leakage.
  • Skalierung, Imputation und Merkmalsauswahl gehören in die Pipeline, nicht vor den Split.
  • Bei Zeitreihen immer vorwärts validieren, nie mischen.
  • Die Streuung über die Faltungen mitberichten, nicht nur den Mittelwert.
  • Den Testsatz vor der ersten Zeile Modellcode abtrennen und wegsperren.

Die Schätzung

k-fache Kreuzvalidierung

CV(k) = (1/k) · Σⱼ (1/|Dⱼ|) · Σ_{i∈Dⱼ} L( f₋ⱼ(xᵢ), yᵢ )

Der Schätzwert ist der Mittelwert der k Validierungsergebnisse, jedes von einem Modell, das die eigene Faltung nie gesehen hat.

k
Anzahl der Faltungen
Dⱼ
die j-te Faltung als Validierungsteil
f₋ⱼ
das Modell, trainiert ohne Faltung j

Der Kompromiss: kleines k heißt kleinere Trainingsmengen und damit eine nach oben verzerrte Fehlerschätzung; großes k heißt geringere Verzerrung, aber stark korrelierte Modelle und dadurch eine unterschätzte Streuung. Fünf bis zehn Faltungen sind die übliche Wahl, weil beide Effekte dort klein sind.

Verschachtelte Kreuzvalidierung

Wer Hyperparameter mit derselben Kreuzvalidierung wählt, mit der er auch die Güte schätzt, erhält eine zu optimistische Zahl. Der saubere Aufbau hat zwei Schleifen: die innere wählt die Hyperparameter, die äußere schätzt die Güte des gesamten Auswahlverfahrens. Der Aufwand ist k_außen × k_innen Trainingsläufe, bei 5 × 5 also 25 statt 5.

Für große Modelle ist das nicht bezahlbar. Dort ersetzt man es durch einen festen dreiteiligen Split mit einem zurückgehaltenen Testsatz und dokumentiert, wie viele Konfigurationen auf der Validierung geprüft wurden. Diese Zahl gehört zwingend in den Bericht, weil sie das Ausmaß der Mehrfachtestung angibt.

Zeitliche Splits und Vorlaufzeit

Bei Vorhersagen mit Vorlaufzeit gehört zwischen Trainings- und Validierungsteil eine Lücke von genau dieser Länge. Wer eine Nachfrage 14 Tage im Voraus vorhersagen will, aber bis einen Tag vor dem Zielzeitpunkt trainiert, misst eine Güte, die im Betrieb nie erreichbar ist.

Passende Kurse und Quellen

ArtikelKostenlosEN

Modellbewertung in scikit-learn

Die vollständige Übersicht der Bewertungsmaße mit ihren Fallstricken. Die kürzeste Antwort auf die Frage, warum Genauigkeit meist die falsche Zahl ist.

Die kürzeste Antwort auf die Frage, warum Genauigkeit meist die falsche Zahl ist.

scikit-learnZum Angebot
BuchKostenlosEN

The Elements of Statistical Learning

Die statistische Sicht auf maschinelles Lernen, seit zwanzig Jahren die Referenz für Bias, Varianz und Modellwahl. Anspruchsvoll, frei als PDF.

Für alle mit statistischem Vorwissen; ohne dieses ist der Einstieg mühsam.

War diese Seite hilfreich?
Kreuzvalidierung und Datensplits