Sobes.tech
Middle — Senior

Welche Merkmale gibt es beim Aufbau des Datensatzes und der Validierung für Modelle von Zeitreihen?

sobes.tech KI

Antwort von AI

Beim Aufbau von Datensätzen und Validierungen für Zeitreihenmodelle ist es wichtig, die zeitliche Abhängigkeit der Daten zu berücksichtigen und das Leck von Informationen aus der Zukunft in die Vergangenheit zu vermeiden.

Hauptmerkmale:

  1. Gleitendes Fenster (Sliding window) — Erstellung von Trainingsbeispielen aus aufeinanderfolgenden Zeitintervallen, wobei die Eingabe frühere Werte und die Ausgabe den nächsten Schritt darstellt.

  2. Zeitliche Datenaufteilung — Die Daten werden strikt nach Zeit in Trainings-, Validierungs- und Testdaten aufgeteilt, damit das Modell keine zukünftigen Daten während des Trainings sieht.

  3. Validierung unter Berücksichtigung der zeitlichen Abfolge:

    • Verwendung von Methoden wie TimeSeriesSplit, die sequenzielle Aufteilungen unter Beachtung der Datenreihenfolge erstellen.
    • Vermeidung von zufälligem Mischen (shuffle), da dies die zeitliche Struktur verletzt.
  4. Umgang mit Saisonalität und Trends — bei der Merkmalsbildung werden zeitliche Eigenschaften berücksichtigt (Wochentag, Stunde, Feiertage).

  5. Umgang mit fehlenden Werten und Anomalien — eine korrekte Vorverarbeitung ist wichtig, da Zeitreihen empfindlich auf solche Verzerrungen reagieren.

Beispiel für die Datenaufteilung:

import pandas as pd
from sklearn.model_selection import TimeSeriesSplit

daten = pd.read_csv('timeseries.csv', parse_dates=['date'])
daten = daten.sort_values('date')

# Aufteilung in Training und Test nach Datum
train = daten[daten['date'] < '2023-01-01']
test = daten[daten['date'] >= '2023-01-01']

# TimeSeriesSplit für Kreuzvalidierung
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]
    # Modelltraining und -validierung

Der Schlüssel ist, die chronologische Reihenfolge beizubehalten und das Leck von zukünftigen Informationen in die Vergangenheit zu vermeiden.