Sobes.tech
Middle — Senior

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:

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

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

  3. 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.
  4. Gestione della stagionalità e delle tendenze — nella creazione delle caratteristiche si considerano le caratteristiche temporali (giorno della settimana, ora, festività).

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