Sobes.tech
Middle — Senior

Cum se face validarea încrucișată pe serii temporale?

sobes.tech AI

Răspuns de la AI

Validarea încrucișată pe serii temporale diferă de cea clasică, deoarece datele au o dependență temporală și nu pot fi amestecate pur și simplu aleatoriu.

Abordări principale:

  1. Time Series Split (fereastră glisantă)

    • Datele sunt împărțite în blocuri temporale secvențiale.
    • La fiecare pas, modelul este antrenat pe datele până la un anumit moment și testat pe intervalul de timp următor.
    • Exemplu: antrenare pe luni 1-3, testare pe 4; apoi antrenare pe 1-4, testare pe 5 etc.
  2. Validare în avans (Walk-forward validation)

    • Similar cu Time Series Split, dar modelul este re-antrenat la fiecare pas, adăugând noi date.
  3. Validare încrucișată blocată (Blocked cross-validation)

    • Datele sunt împărțite în blocuri, evitând scurgerea de informații între antrenament și test.

Exemplu în Python cu sklearn:

from sklearn.model_selection import TimeSeriesSplit
import numpy as np

X = np.arange(100).reshape(-1, 1)  # Date de exemplu
 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]
    # Antrenează modelul pe X_train, y_train
    # Evaluează pe X_test, y_test

Este important să păstrezi ordinea cronologică pentru a nu folosi date viitoare pentru antrenarea modelului.