Quali sono le caratteristiche della costruzione del dataset e della validazione per modelli di serie temporali?
sobes.tech AI
Risposta dell'AI
Durante la creazione di set di dati e la validazione per modelli di serie temporali, è importante considerare la dipendenza temporale dei dati ed evitare che le informazioni future trapelino nel passato.
Caratteristiche principali:
-
Finestra mobile (Sliding window) — creazione di esempi di addestramento da intervalli temporali sequenziali, dove l’input sono valori precedenti e l’output il passo successivo.
-
Divisione dei dati nel tempo — i dati vengono divisi in set di addestramento, validazione e test rigorosamente in ordine temporale, affinché il modello non veda dati futuri durante l’addestramento.
-
Validazione considerando la sequenza temporale:
- Uso di metodi come TimeSeriesSplit, che creano partizioni sequenziali rispettando l’ordine dei dati.
- Evitare mescolamenti casuali (shuffle), poiché ciò viola la struttura temporale.
-
Gestione della stagionalità e delle tendenze — nella creazione delle caratteristiche si considerano le caratteristiche temporali (giorno della settimana, ora, festività).
-
Gestione di valori mancanti e anomalie — è importante un pre-processamento corretto, poiché le serie temporali sono sensibili a tali distorsioni.
Esempio di divisione dei dati:
import pandas as pd
from sklearn.model_selection import TimeSeriesSplit
dati = pd.read_csv('timeseries.csv', parse_dates=['date'])
dati = dati.sort_values('date')
# Divisione in train e test per data
train = dati[dati['date'] < '2023-01-01']
test = dati[dati['date'] >= '2023-01-01']
# TimeSeriesSplit per validazione incrociata
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]
# addestramento e validazione del modello
Quindi, la chiave è mantenere l’ordine cronologico e evitare che informazioni future trapelino nel passato.