Klassisches k-Fold teilt Zeilen zufällig in k Teile, trainiert auf k minus eins, validiert auf dem zurückgehaltenen Fold und mittelt. Bei Zeitreihen ist das ungültig, weil zufällige Splits das Modell auf der Zukunft trainieren und die Vergangenheit vorhersagen lassen. Nimm stattdessen Forward Chaining: trainieren bis Zeitpunkt t, auf dem nächsten Fenster validieren, weiterrollen und eine Lücke lassen, wenn Features rollierende Fenster nutzen.
Warum Interviewer das fragen
Leakage über die Zeit ist einer der häufigsten Gründe, warum ein Modell offline glänzt und in Produktion stirbt. Interviewer sehen daran, ob du darüber nachdenkst, wie das Modell tatsächlich genutzt wird. Sie hören außerdem auf gruppierte Splits, wenn Zeilen nicht unabhängig sind, etwa mehrere Zeilen pro Kunde, und darauf, ob du Preprocessing innerhalb des Folds fittest statt auf dem gesamten Datensatz.
So baust du deine Antwort auf
- Beschreib klassisches k-Fold in einem Satz.
- Erklär, warum zufällige Splits leaken, sobald Zeit eine Rolle spielt.
- Beschreib Forward Chaining und die Lücke zwischen Training und Validierung.
- Ergänze gruppierte Splits für wiederkehrende Entitäten und Preprocessing auf Fold-Ebene.
Beispielantwort
Normales k-Fold mischt Zeilen in Folds und rotiert, welcher zurückgehalten wird. Das ist fein, solange Zeilen unabhängig sind, und fällt sofort auseinander, wenn sie es nicht sind. Bei Zeitreihen nutze ich Forward Chaining: trainieren auf Monat eins bis sechs, validieren auf sieben, dann trainieren bis sieben und validieren auf acht und so weiter. Die Validierung liegt immer hinter dem Trainingsfenster, so wie das Modell später genutzt wird. Ich lasse außerdem eine Lücke, wenn meine Features rollierende Fenster nutzen, denn ein 30-Tage-Rolling-Average, das genau an der Grenze berechnet wird, enthält still und leise Information aus dem Validierungszeitraum. Die andere Falle sind wiederkehrende Entitäten. Wenn ein Kunde vierzig Zeilen hat und die in Training und Validierung landen, kann das Modell diesen Kunden auswendig lernen und der Score ist aufgeblasen. Also gruppiere ich nach Kunden-ID. Und ich fitte Scaler und Encoder innerhalb jedes Folds, nie vorher auf dem ganzen Datensatz, weil das die Validierungsverteilung ins Training leakt. Allein das hat bei mir schon ein paar Punkte Differenz zwischen offline und live erklärt.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Wie viele Folds nimmst du, und warum?
- Was ist Nested Cross Validation und wann brauchst du sie?
- Wie validierst du ein Modell, das ein seltenes Ereignis vorhersagt, das ein paar Mal im Jahr auftritt?
Weitere Fragen für Data Scientist
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen