Sobes.tech
Middle — Senior

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:

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

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

  3. 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.
  4. Zpracování sezónnosti a trendů — při tvorbě znaků se zohledňují časové charakteristiky (den v týdnu, hodina, svátky).

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