Sobes.tech
Middle — Senior

Hogyan végezhető kereszt-ellenőrzés időbeli sorozatokon?

sobes.tech MI

Válasz az MI-től

Az idősortesztelés különbözik a klasszikustól, mivel az adatok időfüggőséget mutatnak, és nem lehet őket egyszerűen véletlenszerűen összekeverni.

Fő megközelítések:

  1. Time Series Split (csúszó ablak)

    • Az adatokat egymást követő időbeli blokkokra osztják.
    • Minden lépésben a modellt az adott időpontig tartó adatokkal tanítják, és a következő időintervallumon tesztelik.
    • Példa: tanítás hónapok 1-3, teszt 4; majd tanítás 1-4, teszt 5 stb.
  2. Walk-forward validáció

    • Hasonló a Time Series Split-hez, de a modellt minden lépésben újra tanítják, új adatok hozzáadásával.
  3. Blokkolt kereszt-ellenőrzés (Blocked cross-validation)

    • Az adatokat blokkokra osztják, elkerülve az információ szivárgását a tanulási és tesztelési szakaszok között.

Python példával sklearn használatával:

from sklearn.model_selection import TimeSeriesSplit
import numpy as np

X = np.arange(100).reshape(-1, 1)  # Példaadatok
 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]
    # Modell tanítása X_train, y_train adatokkal
    # Értékelés X_test, y_test adatokkal

Fontos, hogy megőrizze a kronológiai sorrendet, hogy ne használjon jövőbeli adatokat a modell tanításához.