Heim  >  Artikel  >  Backend-Entwicklung  >  Wie forme ich Zeitreihendaten für die Verwendung mit Keras-LSTMs um und welche Bedeutung haben zustandsbehaftete LSTMs und die Parameter „Zeitschritte' und „Funktionen'?

Wie forme ich Zeitreihendaten für die Verwendung mit Keras-LSTMs um und welche Bedeutung haben zustandsbehaftete LSTMs und die Parameter „Zeitschritte' und „Funktionen'?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-24 05:03:08371Durchsuche

How do I reshape time series data for use with Keras LSTMs, and what is the significance of stateful LSTMs and the parameters

Keras LSTMs verstehen

Daten für die Zeitreihenanalyse umformen

In Keras werden Zeitreihendaten normalerweise mit dem in ein dreidimensionales Array umgeformt Dimensionen [Samples, Zeitschritte, Features]. Dieses Format ist für LSTM-Ebenen erforderlich, die Daten im Laufe der Zeit sequentiell verarbeiten.

  • Beispiele: Die Anzahl der Sequenzen in Ihrem Datensatz
  • Zeitschritte : Die Länge jeder Sequenz (Anzahl der Male). Schritte)
  • Merkmale: Die Anzahl der Eingabemerkmale bei jedem Zeitschritt

Zum Beispiel, wenn Sie 5 Trainingssequenzen mit jeweils 10 Zeitschritten und 1 haben Funktion würden Ihre Daten in (5, 10, 1) umgeformt.

Stateful LSTMs

Zustandsbehaftete LSTMs ermöglichen es dem Modell, seinen internen Zustand zwischen Chargen beizubehalten. Dies bedeutet, dass sich das Modell die verborgenen Zustände nach der Verarbeitung eines Stapels merkt und sie als Eingabe für den nächsten Stapel verwendet. Dies ist besonders nützlich beim Umgang mit sequentiellen Daten, bei denen die aktuelle Ausgabe von den vorherigen Eingaben abhängt.

In dem von Ihnen bereitgestellten Keras-Code ist stateful=True auf True gesetzt, was anzeigt, dass der LSTM zustandsbehaftet ist. Die Batch-Größe ist auf 1 gesetzt, was bedeutet, dass das Modell jeweils eine Sequenz verarbeitet. Das Modell behält die Zellspeicherwerte zwischen den Trainingsläufen bei und ermöglicht so das Erlernen der langfristigen Abhängigkeiten in den Daten.

Zeitschritte und Funktionen

  • Zeitschritte : Die Anzahl der Zeitschritte in den Eingabedaten stellt die Länge der betrachteten Sequenz dar. Im Bild stellen die rosa Kästchen die Länge der Sequenz dar.
  • Merkmale: Jeder Zeitschritt verfügt über eine Reihe von Eingabemerkmalen, bei denen es sich um die vom LSTM verwendeten Werte handelt. Im Bild ist die Anzahl der Features die Anzahl der grünen Kästchen in jedem rosa Kästchen.

Wenn Sie mit multivariaten Zeitreihen arbeiten, bei denen jeder Zeitschritt mehrere Eingabemerkmale hat (z. B. Aktienkurse). ), ist die Anzahl der Features größer als 1.

Grundlegendes zur LSTM-Architektur

Die von Ihnen bereitgestellte Keras LSTM-Implementierung verfügt über ein einziges LSTM-Schicht mit 4 Einheiten und einer Rückgabesequenz von True. Dies bedeutet, dass das LSTM für jeden Eingabezeitschritt eine Sequenz der Länge 4 ausgibt.

Das Modell wird dann mit der Funktion des mittleren quadratischen Fehlerverlusts und dem Adam-Optimierer kompiliert. Die Trainingsschleife iteriert über 100 Epochen mit einer Stapelgröße von 1.

Es ist wichtig zu beachten, dass dieses LSTM-Modell darauf ausgelegt ist, den nächsten Zeitschritt basierend auf den vorherigen Zeitschritten vorherzusagen. Das Modell kann jedoch für andere Aufgaben wie Sequenzklassifizierung oder Sprachmodellierung modifiziert werden, indem die Ausgabeebene und die Verlustfunktion geändert werden.

Das obige ist der detaillierte Inhalt vonWie forme ich Zeitreihendaten für die Verwendung mit Keras-LSTMs um und welche Bedeutung haben zustandsbehaftete LSTMs und die Parameter „Zeitschritte' und „Funktionen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn