Sobes.tech
Middle — Senior

Hoe voer je cross-validatie uit op tijdreeksen?

sobes.tech AI

Antwoord van AI

Cross-validatie op tijdreeksen verschilt van de klassieke, omdat de gegevens tijdsafhankelijkheid vertonen en niet eenvoudig willekeurig kunnen worden door elkaar gehusseld.

Belangrijkste benaderingen:

  1. Time Series Split (glijdend venster)

    • De gegevens worden opgesplitst in opeenvolgende tijdsblokken.
    • Bij elke stap wordt het model getraind op de gegevens tot een bepaald moment en getest op het volgende tijdsinterval.
    • Voorbeeld: trainen in maanden 1-3, testen op 4; vervolgens trainen in 1-4, testen op 5, enzovoort.
  2. Walk-forward validatie

    • Vergelijkbaar met Time Series Split, maar het model wordt bij elke stap opnieuw getraind, met toevoeging van nieuwe gegevens.
  3. Geblokkeerde cross-validatie

    • De gegevens worden in blokken verdeeld, om informatielekken tussen training en test te voorkomen.

Voorbeeld in Python met sklearn:

from sklearn.model_selection import TimeSeriesSplit
import numpy as np

X = np.arange(100).reshape(-1, 1)  # Voorbeeldgegevens
 y = np.sin(X).ravel()

tscv = TimeSeriesSplit(n_splits=5)
for train_index, test_index in tscv.split(X):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    # Train het model op X_train, y_train
    # Evalueer op X_test, y_test

Het is belangrijk om de chronologische volgorde te behouden, zodat toekomstige gegevens niet worden gebruikt voor het trainen van het model.