LSTM für Zeitreihenprognosen
Vorbereiten von Sequenzen, zustandslose vs. zustandsbehaftete LSTM, Rückblickfenster, mehrschrittige Prognosen.
LSTM für Zeitreihenprognosen ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Warum LSTM für Zeitreihen?
LSTM (Long Short-Term Memory) ist ein rekurrentes neuronales Netzwerk, das sich mithilfe von Speicherzellen mit Gates Muster über lange Sequenzen hinweg merkt. Es kann nichtlineare Abhängigkeiten modellieren, die ARIMA nicht erfassen kann, und ist daher bei komplexen Zeitreihen und ausreichenden Daten besonders leistungsfähig.
Sequenzfenster
LSTMs lernen aus Fenstern: Abschnitten fester Länge aus vergangenen Schritten, mit denen der nächste Wert vorhergesagt wird. Bei einem Fenster von 10 sieht das Modell die Schritte 1–10, um Schritt 11 vorherzusagen, anschließend 2–11, um 12 vorherzusagen, und so weiter.
Fenster im Code erstellen
Eine Hilfsfunktion wandelt eine eindimensionale Zeitreihe in Eingabe-/Zielpaare um.
import numpy as np
def make_windows(series, window):
X, y = [], []
for i in range(len(series) - window):
X.append(series[i:i+window])
y.append(series[i+window])
return np.array(X), np.array(y)
X, y = make_windows(values, window=10)Daten skalieren
Neuronale Netzwerke lassen sich mit skalierten Eingaben besser trainieren. Verwenden Sie MinMaxScaler, um die Werte auf [0, 1] abzubilden, und denken Sie daran, die Vorhersagen später wieder zurückzutransformieren.
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled = scaler.fit_transform(values.reshape(-1, 1))Für das LSTM umformen
Keras-LSTM-Schichten erwarten Eingaben in der Form (samples, timesteps, features). Bei einer univariaten Zeitreihe ist features gleich 1.
# X is (samples, timesteps); add a feature axis
X = X.reshape((X.shape[0], X.shape[1], 1))
print(X.shape) # (samples, timesteps, 1)Das Modell erstellen
Eine einfache Architektur besteht aus einer LSTM(50)-Schicht, die eine Dense(1)-Ausgabe speist, welche den nächsten Wert vorhersagt.
from tensorflow.keras import Sequential
from tensorflow.keras.layers import LSTM, Dense
model = Sequential([
LSTM(50, input_shape=(X.shape[1], 1)),
Dense(1)
])Warum Dense(1)
Die Vorhersage eines Schritts im Voraus ist eine Regression mit einer einzigen numerischen Ausgabe. Daher lautet die letzte Schicht Dense(1) ohne Aktivierungsfunktion. Für Vorhersagen über mehrere Schritte würden Sie Dense(n_steps) verwenden.
Kompilieren
Verwenden Sie den Optimierer adam und den Verlust mse (mittlerer quadratischer Fehler), die Standardwahl für Regressionen mit kontinuierlichen Zielwerten.
model.compile(optimizer="adam", loss="mse")Trainieren
Trainieren Sie das Modell mit den Daten in Fensterform. Eine Validierungsaufteilung überwacht die Generalisierungsfähigkeit über die Epochen hinweg.
history = model.fit(
X, y,
epochs=50,
batch_size=32,
validation_split=0.2
)Vorhersagen treffen
Treffen Sie Vorhersagen für neue Fenster und transformieren Sie die Ergebnisse anschließend zurück, um wieder die ursprüngliche Skala zu erhalten.
pred_scaled = model.predict(X_test)
pred = scaler.inverse_transform(pred_scaled)Stapeln und Abstimmen
Bei anspruchsvolleren Zeitreihen können Sie LSTMs stapeln (setzen Sie bei allen außer dem letzten return_sequences=True) und Dropout hinzufügen. Mehrere Schichten erfassen tiefere Muster, benötigen aber mehr Daten und erhöhen das Risiko einer Überanpassung.
model = Sequential([
LSTM(50, return_sequences=True, input_shape=(X.shape[1], 1)),
LSTM(50),
Dense(1)
])Kurzer Test
Testen Sie Ihr Wissen über LSTM-Vorhersagen.
Zusammenfassung
Sie haben Fenster vorbereitet, mit MinMaxScaler skaliert, in (samples, timesteps, features) umgeformt, LSTM(50) + Dense(1) erstellt, mit adam/mse kompiliert, trainiert und Vorhersagen getroffen (und diese zurücktransformiert). Damit endet der Kurs zu Zeitreihen. Der nächste Kurs heißt: Recommendation Systems.
Häufig gestellte Fragen
Ist die Lektion „LSTM für Zeitreihenprognosen“ kostenlos?
Ja — der vollständige Text von „LSTM für Zeitreihenprognosen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „LSTM für Zeitreihenprognosen“?
Vorbereiten von Sequenzen, zustandslose vs. zustandsbehaftete LSTM, Rückblickfenster, mehrschrittige Prognosen. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „LSTM für Zeitreihenprognosen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Komponenten und Stationarität von Zeitreihen
- ARIMA- und SARIMA-Modelle
- Prophet für automatisierte Prognosen
- LSTM für Zeitreihenprognosen