Jakie są cechy budowy zbioru danych i walidacji dla modeli szeregów czasowych?
sobes.tech AI
Odpowiedź od AI
Podczas tworzenia zbiorów danych i walidacji dla modeli szeregów czasowych ważne jest uwzględnienie zależności czasowej danych i unikanie wycieku informacji z przyszłości do przeszłości.
Główne cechy:
-
Okno przesuwne (Sliding window) — tworzenie przykładów treningowych z kolejnych interwałów czasowych, gdzie wejście to wcześniejsze wartości, a wyjście to następny krok.
-
Podział danych według czasu — dane są dzielone na zbiór treningowy, walidacyjny i testowy ściśle według czasu, aby model nie widział danych z przyszłości podczas treningu.
-
Walidacja z uwzględnieniem kolejności czasowej:
- Użycie metod takich jak TimeSeriesSplit, które tworzą sekwencyjne podziały uwzględniające kolejność danych.
- Unikanie losowego mieszania (shuffle), ponieważ narusza to strukturę czasową.
-
Obsługa sezonowości i trendów — podczas tworzenia cech uwzględnia się cechy czasowe (dzień tygodnia, godzina, święta).
-
Obsługa braków i anomalii — ważne jest poprawne wstępne przetwarzanie, ponieważ szeregi czasowe są wrażliwe na takie zniekształcenia.
Przykład podziału danych:
import pandas as pd
from sklearn.model_selection import TimeSeriesSplit
dane = pd.read_csv('timeseries.csv', parse_dates=['date'])
dane = dane.sort_values('date')
# Podział na trening i test według daty
train = dane[dane['date'] < '2023-01-01']
test = dane[dane['date'] >= '2023-01-01']
# TimeSeriesSplit do walidacji krzyżowej
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]
# trening i walidacja modelu
Kluczem jest zachowanie chronologicznego porządku i unikanie wycieku informacji z przyszłości do przeszłości.