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:
-
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.
-
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.
-
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.