Sobes.tech
Middle — Senior

Comment effectuer une validation croisée sur des séries temporelles?

sobes.tech IA

Réponse de l'IA

La validation croisée sur des séries temporelles diffère de la méthode classique, car les données ont une dépendance temporelle, et il n’est pas possible de simplement les mélanger aléatoirement.

Approches principales :

  1. Time Series Split (fenêtre glissante)

    • Les données sont divisées en blocs temporels séquentiels.
    • À chaque étape, le modèle est entraîné sur les données jusqu’à un moment donné et testé sur l’intervalle de temps suivant.
    • Exemple : entraîner sur les mois 1-3, tester sur 4 ; puis entraîner sur 1-4, tester sur 5, etc.
  2. Validation en marche avant (Walk-forward validation)

    • Semblable à Time Series Split, mais le modèle est réentraîné à chaque étape en ajoutant de nouvelles données.
  3. Validation croisée par blocs (Blocked cross-validation)

    • Les données sont divisées en blocs, évitant la fuite d’informations entre entraînement et test.

Exemple en Python avec sklearn :

from sklearn.model_selection import TimeSeriesSplit
import numpy as np

X = np.arange(100).reshape(-1, 1)  # Données d’exemple
 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]
    # Entraîner le modèle sur X_train, y_train
    # Évaluer sur X_test, y_test

Il est important de préserver l’ordre chronologique pour ne pas utiliser de données futures lors de l’entraînement du modèle.