Machine Learning · Splits & Leakage

ML-Validierung: den späteren Einsatz nachbauen

Zeitpunkt, Einheit und Auswahlprozess bestimmen den Split; Preprocessing, Tuning und Kalibrierung bleiben innerhalb der Trainingsgrenze.

Öffentlich belegtZuletzt fachlich geprüft: 2026-09-02

Estimand der Evaluation

Eine ML-Evaluation schätzt nicht abstrakt „Modellgüte“, sondern Leistung für eine definierte Zielpopulation, Vorhersageeinheit, Entscheidungszeit und Datenpipeline. Der Holdout muss die späteren unbekannten Fälle nachbilden. Ein zufälliger Zeilensplit beantwortet diese Frage nur, wenn Zeilen hinreichend unabhängig und aus demselben stabilen Prozess stammen.

Die offizielle scikit-learn-Dokumentation warnt: Sobald Hyperparameter wiederholt anhand des Tests angepasst werden, fließt Testwissen in die Modellwahl und der Score verliert seine Rolle als Generalisationsschätzung.[2]

Leakage: Information überquert die Zeit- oder Fold-Grenze

LeckBeispielReparatur
Target leakageFeature wird erst nach dem Zielereignis erzeugt.Feature-Verfügbarkeit zum Entscheidungszeitpunkt rekonstruieren.
Train–test contaminationImputer, Skalierer, PCA oder Feature-Auswahl auf allen Daten fitten.Split zuerst; Transformation ausschließlich im Trainingsfold fitten.
Entity leakageVorgänge derselben Person liegen in Train und Test.Alle abhängigen Zeilen derselben Entität in einem Fold halten.
Temporal leakageZukunftsdaten trainieren ein Modell für frühere Fälle.Rolling/forward split, Cutoff und gegebenenfalls zeitlichen Gap verwenden.
Selection leakageNur Fälle mit später beobachtetem Label evaluieren.Labelmechanismus, Coverage und selektive Missingness untersuchen.

Transformationen müssen auf Train gelernt und konsistent auf Validation/Test angewandt werden. Pipelines kapseln diesen Ablauf in Cross-Validation und Hyperparametertuning.[1]

Geprüftes Split-Beispiel

Allgemeines Lernbeispiel: 600 Zeilen stammen von 200 Personen, je drei Vorgänge. Ein zufälliger 80/20-Zeilensplit legt im Erwartungswert pro Person 2,4 Zeilen in Train und 0,6 in Test. Die Wahrscheinlichkeit, dass alle drei Zeilen einer Person nur in Train oder nur in Test liegen, ist 0,8³+0,2³=0,520. Damit landen ungefähr 48% der Personen in beiden Mengen. Personennahe Features können dann Wiedererkennung statt Übertragung auf neue Personen messen.

Reparatur: Wenn der Einsatz neue Personen betrifft, gruppenweise nach Person splitten. Wenn zukünftige Vorgänge bestehender Personen das Ziel sind, braucht es zusätzlich einen zeitlichen Cutoff und eine explizite Regel für Historienfeatures.

Splitwahl folgt dem Deployment

Random/stratifiziert

Nur für plausibel i.i.d. Einheiten. Stratifizierung stabilisiert Klassenanteile, beweist aber keine zeitliche Übertragbarkeit.

Group split

Für Personen, Standorte, Geräte oder andere abhängige Cluster. Keine Gruppe über Fold-Grenzen teilen.

Time split

Vergangenheit trainiert, Zukunft testet. Cutoff, Labelverzug, saisonale Fenster und Gap begründen.

Group + time

Bei wiederholten Entitäten und Zukunftseinsatz beide Strukturen respektieren; Standard-Splitter reichen eventuell nicht.

Die scikit-learn-Dokumentation empfiehlt bei Gruppenstruktur gruppenweise und bei zeitabhängigen Prozessen zeitgerechte Cross-Validation; klassische K-Fold-Verfahren beruhen auf einer i.i.d.-artigen Sicht.[2]

Modellwahl ohne Test-Overfitting

  1. Unberührten finalen Test anhand der Deployment-Grenze reservieren.
  2. Innerhalb des Trainingsbereichs Preprocessing, Feature-Auswahl, Modelle und Hyperparameter per passenden Folds wählen.
  3. Schwelle und gegebenenfalls Kalibrierung auf Out-of-fold- oder separaten Validierungsprognosen bestimmen.
  4. Analyseplan und Akzeptanzkriterien einfrieren; Test genau einmal für die primäre Schätzung öffnen.
  5. Konfidenz, Fold-Streuung und relevante Shift-Szenarien berichten; Folds sind keine unabhängigen Wiederholungsstudien.

Interview-Fallen

  • „Cross-Validation verhindert Leakage“ – nur wenn jeder lernende Schritt innerhalb des Folds liegt und der Split die Abhängigkeit respektiert.
  • Testdaten zur Schwellenwahl verwenden und denselben Testscore als final ausgeben.
  • Ein zufälliger Split bei Zukunftsprognosen oder wiederholten Personen.
  • Feature-Zeitstempel prüfen, aber die zeitliche Verfügbarkeit der Quelle ignorieren.

90-Sekunden-Antwort

„Ich starte bei Einheit, Entscheidungszeit und künftigem Einsatz. Dann zeichne ich für jedes Feature, Label und Preprocessing den Verfügbarkeitszeitpunkt. Der äußere Test bildet neue Gruppen oder Zukunft ab; innerhalb des Trainingsbereichs wähle ich Pipeline und Hyperparameter mit passenden Folds. Schwelle und Kalibrierung lernen nicht am finalen Test. Am Ende berichte ich nicht nur einen Mittelwert, sondern Fold-, Zeit- und Subgruppenstabilität sowie verbleibende Selektionsrisiken.“

Belege auf dieser Seite

  1. Common pitfalls and recommended practices · geprüft 2026-09-02
  2. Cross-validation: evaluating estimator performance · geprüft 2026-09-02
  3. GroupKFold — scikit-learn 1.9.0 documentation · geprüft 2026-09-02