Sobes.tech
Middle — Senior

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:

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

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

  3. 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ą.
  4. Obsługa sezonowości i trendów — podczas tworzenia cech uwzględnia się cechy czasowe (dzień tygodnia, godzina, święta).

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