Vorverarbeitung von Zeitreihendaten
Die entscheidenden Schritte der Vorverarbeitung von Zeitreihendaten für ein Prognoseprojekt werden behandelt. Die Vorverarbeitung stellt sicher, dass die Daten sauber, gut strukturiert und bereit für das Modelltraining sind. Zu den Themen gehören Merkmals-Skalierung, Train-Test-Split und Sequenz-Erstellung, die alle für eine effektive Datenvorbereitung unerlässlich sind.
- Merkmals-Skalierung: Die Merkmals-Skalierung ist wichtig, um sicherzustellen, dass alle Eingabemerkmale auf einer ähnlichen Skala liegen. Dies hilft Modellen wie LSTM und ARIMA, schneller zu konvergieren und ihre Leistung zu verbessern. Gängige Techniken zur Merkmals-Skalierung sind Min-Max-Skalierung und Standardisierung (z-Score-Normalisierung). Die Skalierung hilft dem Modell, sich auf die Beziehungen innerhalb der Daten zu konzentrieren, anstatt durch Merkmale mit größeren Wertebereichen verzerrt zu werden;
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_train_data = scaler.fit_transform(train_data_raw)
scaled_test_data = scaler.transform(test_data_raw)
- Train-Test-Split: Das Aufteilen des Datensatzes in Trainings- und Testdaten ist entscheidend für die Bewertung der Modellleistung. Typischerweise wird ein Zeitreihendatensatz chronologisch aufgeteilt, wobei der frühere Teil der Daten für das Training und der spätere Teil für das Testen verwendet wird. Dies stellt sicher, dass das Modell mit Daten bewertet wird, die es zuvor nicht gesehen hat, und simuliert reale Prognoseszenarien. Ein übliches Verhältnis ist 80 % für das Training und 20 % für das Testen, dies kann jedoch je nach Größe und Eigenschaften der Daten variieren;
train_split_ratio = 0.8
train_size = int(len(price_data) * train_split_ratio)
train_data_raw = price_data[:train_size]
test_data_raw = price_data[train_size:]
- Sequenz-Erstellung: Bei der Zeitreihenprognose, insbesondere bei der Verwendung von Modellen wie LSTM, müssen die Daten in ein Sequenzformat umgewandelt werden. Der Schritt der Sequenz-Erstellung beinhaltet das Formen der Daten in Eingabe-Ausgabe-Paare, wobei jede Eingabe einer Sequenz vergangener Beobachtungen entspricht und die Ausgabe der vorhergesagte Wert für den nächsten Zeitschritt ist. Dies ist entscheidend, damit Modelle aus vorherigen Zeitschritten lernen und genaue Vorhersagen für zukünftige Schritte treffen können.
def create_sequences(data, seq_length):
xs = []
ys = []
for i in range(len(data) - seq_length):
x = data[i:(i + seq_length)]
y = data[i + seq_length]
xs.append(x)
ys.append(y)
# Ensure numpy arrays are returned, helps with tensor conversion later
return np.array(xs), np.array(ys)
Zusammenfassend ist die Vorverarbeitung ein entscheidender Schritt bei der Zeitreihenprognose. Durch die Skalierung der Merkmale, das Aufteilen der Daten in Trainings- und Testdaten sowie das Erstellen von Sequenzen für die Modelleingabe stellen wir sicher, dass die Daten gut für eine genaue und effiziente Prognose vorbereitet sind.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 4.55
Vorverarbeitung von Zeitreihendaten
Swipe um das Menü anzuzeigen
Die entscheidenden Schritte der Vorverarbeitung von Zeitreihendaten für ein Prognoseprojekt werden behandelt. Die Vorverarbeitung stellt sicher, dass die Daten sauber, gut strukturiert und bereit für das Modelltraining sind. Zu den Themen gehören Merkmals-Skalierung, Train-Test-Split und Sequenz-Erstellung, die alle für eine effektive Datenvorbereitung unerlässlich sind.
- Merkmals-Skalierung: Die Merkmals-Skalierung ist wichtig, um sicherzustellen, dass alle Eingabemerkmale auf einer ähnlichen Skala liegen. Dies hilft Modellen wie LSTM und ARIMA, schneller zu konvergieren und ihre Leistung zu verbessern. Gängige Techniken zur Merkmals-Skalierung sind Min-Max-Skalierung und Standardisierung (z-Score-Normalisierung). Die Skalierung hilft dem Modell, sich auf die Beziehungen innerhalb der Daten zu konzentrieren, anstatt durch Merkmale mit größeren Wertebereichen verzerrt zu werden;
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_train_data = scaler.fit_transform(train_data_raw)
scaled_test_data = scaler.transform(test_data_raw)
- Train-Test-Split: Das Aufteilen des Datensatzes in Trainings- und Testdaten ist entscheidend für die Bewertung der Modellleistung. Typischerweise wird ein Zeitreihendatensatz chronologisch aufgeteilt, wobei der frühere Teil der Daten für das Training und der spätere Teil für das Testen verwendet wird. Dies stellt sicher, dass das Modell mit Daten bewertet wird, die es zuvor nicht gesehen hat, und simuliert reale Prognoseszenarien. Ein übliches Verhältnis ist 80 % für das Training und 20 % für das Testen, dies kann jedoch je nach Größe und Eigenschaften der Daten variieren;
train_split_ratio = 0.8
train_size = int(len(price_data) * train_split_ratio)
train_data_raw = price_data[:train_size]
test_data_raw = price_data[train_size:]
- Sequenz-Erstellung: Bei der Zeitreihenprognose, insbesondere bei der Verwendung von Modellen wie LSTM, müssen die Daten in ein Sequenzformat umgewandelt werden. Der Schritt der Sequenz-Erstellung beinhaltet das Formen der Daten in Eingabe-Ausgabe-Paare, wobei jede Eingabe einer Sequenz vergangener Beobachtungen entspricht und die Ausgabe der vorhergesagte Wert für den nächsten Zeitschritt ist. Dies ist entscheidend, damit Modelle aus vorherigen Zeitschritten lernen und genaue Vorhersagen für zukünftige Schritte treffen können.
def create_sequences(data, seq_length):
xs = []
ys = []
for i in range(len(data) - seq_length):
x = data[i:(i + seq_length)]
y = data[i + seq_length]
xs.append(x)
ys.append(y)
# Ensure numpy arrays are returned, helps with tensor conversion later
return np.array(xs), np.array(ys)
Zusammenfassend ist die Vorverarbeitung ein entscheidender Schritt bei der Zeitreihenprognose. Durch die Skalierung der Merkmale, das Aufteilen der Daten in Trainings- und Testdaten sowie das Erstellen von Sequenzen für die Modelleingabe stellen wir sicher, dass die Daten gut für eine genaue und effiziente Prognose vorbereitet sind.
Danke für Ihr Feedback!