Jaké jsou vlastnosti sestavení datové sady a validace pro modely časových řad?
sobes.tech AI
Odpověď od AI
Při vytváření datových sad a validace pro modely časových řad je důležité vzít v úvahu časovou závislost dat a zabránit úniku informací z budoucnosti do minulosti.
Hlavní vlastnosti:
-
Posuvné okno (Sliding window) — tvorba tréninkových příkladů z po sobě jdoucích časových intervalů, kde vstupem jsou předchozí hodnoty a výstupem následující krok.
-
Rozdělení dat podle času — data jsou přísně rozdělena na tréninkové, validační a testovací části podle času, aby model neviděl budoucí data při tréninku.
-
Validace s ohledem na časovou posloupnost:
- Použití metod jako TimeSeriesSplit, které vytvářejí sekvenční rozdělení s ohledem na pořadí dat.
- Vyvarovat se náhodného míchání (shuffle), protože to narušuje časovou strukturu.
-
Zpracování sezónnosti a trendů — při tvorbě znaků se zohledňují časové charakteristiky (den v týdnu, hodina, svátky).
-
Zpracování chybějících hodnot a anomálií — důležitá je správná předzpracování, protože časové řady jsou citlivé na takové zkreslení.
Příklad rozdělení dat:
import pandas as pd
from sklearn.model_selection import TimeSeriesSplit
data = pd.read_csv('timeseries.csv', parse_dates=['date'])
data = data.sort_values('date')
# Rozdělení na trénink a test podle data
train = data[data['date'] < '2023-01-01']
test = data[data['date'] >= '2023-01-01']
# TimeSeriesSplit pro křížovou validaci
tscv = TimeSeriesSplit(n_splits=5)
for train_index, val_index in tscv.split(train):
train_fold = train.iloc[train_index]
val_fold = train.iloc[val_index]
# trénování a validace modelu
Klíčem je zachovat časovou posloupnost a zabránit úniku informací z budoucnosti do minulosti.