Zeitserienvorhersagemodell trainieren (GeoAI)

Zusammenfassung

Trainiert ein Deep-Learning-Zeitserienvorhersagemodell mit Zeitseriendaten aus einem Raum-Zeit-Würfel. Das trainierte Modell kann zur Vorhersage der Werte jeder Position eines Raum-Zeit-Würfels mit dem Werkzeug Vorhersage mit Zeitserienmodell verwendet werden.

Zeitseriendaten können unterschiedlichen Trends folgen und mehrere Ebenen saisonaler Schwankungen aufweisen. Traditionelle Zeitserienvorhersagemodelle, die auf statistischen Ansätzen basieren, funktionieren abhängig vom Trend und von den Mustern der saisonalen Schwankungen in den Daten unterschiedlich. Deep-Learning-Modelle sind besonders lernfähig und können Ergebnisse für verschiedenste Arten von Zeitserien liefern, sofern ausreichend Trainingsdaten zur Verfügung stehen.

Dieses Werkzeug trainiert Zeitserienvorhersagemodelle mithilfe verschiedener Deep-Learning-Modelle, wie Fully Connected Network (FCN), Long Short-Term Memory (LSTM), InceptionTime, ResNet und ResCNN. Diese Modelle unterstützen multivariate Zeitserien, in denen das Modell von mehr als einer zeitabhängigen Variablen lernt, um zukünftige Werte vorherzusagen. Das trainierte Modell wird als Deep-Learning-Paketdatei (.dlpk) gespeichert und kann zur Vorhersage von zukünftigen Werten mit dem Werkzeug Vorhersage mit Zeitserienmodell verwendet werden.

Weitere Informationen zur Funktionsweise von Zeitserienvorhersagemodellen

Verwendung

  • Sie müssen das richtige Deep-Learning-Framework für Python in ArcGIS Pro installieren.

    Informationen zum Installieren von Deep-Learning-Frameworks für ArcGIS

  • Dieses Werkzeug akzeptiert netCDF-Daten, die mit den Werkzeugen Raum-Zeit-Würfel durch Aggregieren von Punkten erstellen, Raum-Zeit-Würfel aus definierten Positionen erstellen, Raum-Zeit-Würfel aus multidimensionalem Raster-Layer erstellen und Teilmenge eines Raum-Zeit-Würfels bilden erstellt wurden.

  • Im Vergleich zu anderen Vorhersagewerkzeugen im Toolset "Zeitserienvorhersage" verwendet dieses Werkzeug Zeitserienvorhersagemodelle, die auf Deep Learning basieren. Deep-Learning-Modelle sind besonders lernfähig und für Zeitserien geeignet, die komplexen Trends folgen und mit einfachen mathematischen Funktionen schwer zu modellieren sind. Um diese komplexen Trends zu erlernen, benötigen sie jedoch größere Mengen an Trainingsdaten. Für Training und Inferenz sind daher mehr Datenverarbeitungsressourcen erforderlich. Zum Ausführen dieses Werkzeugs wird eine GPU empfohlen.

  • Wenn Sie dieses Werkzeug mit einem Grafikprozessor ausführen möchten, legen Sie die Umgebungsvariable Prozessortyp auf "GPU" fest. Wenn Sie mehrere Grafikprozessoren haben, legen Sie stattdessen die Umgebungsvariable GPU ID fest.

  • Mit diesem Werkzeug können sowohl univariate als auch multivariate Zeitserien modelliert werden. Wenn der Raum-Zeit-Würfel andere Variablen aufweist, die in Beziehung mit der Variablen stehen, die vorhergesagt wird, können diese als erklärende Variablen einbezogen werden, um die Vorhersage zu verbessern.

  • Vorhersagen mit univariaten Zeitserien erfolgen in einem einzigen Schritt. Dies ist die Standardmethode.

  • Vorhersagen mit multivariaten Zeitserien können mit zwei verschiedenen Methoden erfolgen: als Vorhersage in einem einzigen Schritt oder als Vorhersage in mehreren Schritten. Der Parameter Mehrere Schritte wird aktiviert, wenn mehrere erklärende Trainingsvariablen ausgewählt werden.

  • Bei Verwendung der Ein-Schritt-Methode kann das Modell in jedem Zeitschritt mit neuen Daten aktualisiert werden; daher ist es für Echtzeitanwendungen geeignet. Da das Modell jedoch in jedem Zeitschritt aktualisiert wird, können sich im Zeitverlauf Vorhersagefehler summieren, sodass sich die Genauigkeit langfristiger Vorhersagen verringert. Bei der Vorhersage in mehreren Schritten sagt das Modell mehrere zukünftige Datenpunkte auch nach dem aktuellen Zeitschritt voraus. Wenn zum Beispiel die nächsten 20 Zeitschritte vorhergesagt werden sollen, generiert das Modell sofort 20 aufeinanderfolgende Vorhersagen. Mit einer Vorhersage in mehreren Schritten kann das Modell weitere Aspekte der Zeitserie berücksichtigen und langfristige Trends und Muster effektiver erfassen. Da das Modell mehrere Zeitschritte im Voraus vorhersagt, verringert sich die Wahrscheinlichkeit, dass sich Fehler summieren, und die Genauigkeit langfristiger Vorhersagen wird erhöht. Jedoch ist die Fähigkeit des Modells, Echtzeitänderungen der Daten zu berücksichtigen, geringer, da es mehrere Schritte auf einmal vorhersagt. Die Entscheidung für eine dieser beiden Methoden hängt von den speziellen Anforderungen und Eigenschaften der durchzuführenden Zeitserienvorhersage ab.

  • Der Parameter Sequenzlänge wirkt sich auf das Ergebnis eines Zeitserienvorhersagemodells aus und kann als Anzahl der früheren Zeitschritte definiert werden, die als Eingabe für die Vorhersage des nächsten Zeitschritts verwendet werden sollten. Wenn die Sequenzlänge n beträgt, verwendet das Modell die letzten n Zeitschritte als Eingabe für die Vorhersage des nächsten Zeitschritts. Der Parameterwert darf nicht größer als die Gesamtanzahl der Eingabe-Zeitschritte sein, die nach dem Ausschließen der Validierungszeitschritte übrig bleiben.

  • Anstatt für jede Position des Raum-Zeit-Würfels ein unabhängiges Vorhersagemodell zu erstellen, wird mit diesem Werkzeug ein einziges globales Vorhersagemodell trainiert, das Trainingsdaten jeder einzelnen Position verwendet. Mit diesem globalen Modell werden zukünftige Werte an jeder Position mit dem Werkzeug Vorhersage mit Zeitserienmodell vorhergesagt.

  • Der Parameterwert für Ausgabe-Features wird dem Bereich Inhalt hinzugefügt, wobei das Rendering auf dem letzten vorhergesagten Zeitschritt basiert.

  • Zu den Anwendungsfällen für dieses Werkzeug gehören beispielsweise das Trainieren eines Modells zur Vorhersage der Nachfrage nach Einzelhandelsprodukten auf der Grundlage historischer Verkaufsdaten, das Trainieren eines Modells zur Vorhersage der Ausbreitung von Krankheiten oder das Trainieren des Modells für die Vorhersage der Windenergieerzeugung auf der Grundlage historischer Produktions- und Wetterdaten.

  • Die Entscheidung über die Anzahl der Zeitintervalle, die für die Validierung ausgeschlossen werden sollen, ist wichtig. Je mehr Zeitschritte ausgeschlossen werden, desto weniger stehen für die Schätzung des Validierungs-RMSE zur Verfügung. Wenn zu wenige Zeitschritte ausgeschlossen werden, wird der Validierungs-RMSE mit einer geringen Datenmenge geschätzt und kann irreführend sein. Schließen Sie so viele Zeitschritte wie möglich aus, und behalten Sie gleichzeitig genügend Zeitschritte bei, um den Validierungs-RMSE zu schätzen. Halten Sie mindestens so viele Zeitschritte für die Validierung zurück, wie vorhergesagt werden sollen, sofern der Raum-Zeit-Würfel eine ausreichende Anzahl an Zeitschritten aufweist.

  • Weitere Informationen zu den Voraussetzungen für die Ausführung dieses Werkzeugs und eventuell dabei auftretenden Problemen finden Sie unter Häufig gestellte Fragen zu Deep Learning.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Zeitseriendaten

Der NetCDF-Würfel, der die Variable enthält, mit der zukünftige Zeitschritte vorhergesagt werden sollen. Diese Datei muss eine .nc-Dateierweiterung aufweisen und mit dem Werkzeug Raum-Zeit-Würfel durch Aggregieren von Punkten erstellen, Raum-Zeit-Würfel aus definierten Positionen erstellen oder Raum-Zeit-Würfel aus multidimensionalem Raster-Layer erstellen erstellt worden sein.

File
Ausgabemodell

Der Speicherort des Ausgabeordners, in dem das trainierte Modell gespeichert wird. Das trainierte Modell wird als Deep-Learning-Paketdatei (.dlpk) gespeichert.

Folder
Analysevariable

Die numerische Variable im Dataset, die für zukünftige Zeitschritte vorhergesagt wird.

String
Sequenzlänge

Die Anzahl der vorherigen Zeitintervalle, die beim Trainieren des Modells verwendet werden sollen. Wenn die Daten saisonale Schwankungen (sich wiederholende Zyklen) enthalten, dann geben Sie die Länge an, die einer Saison entspricht.

  • Wenn der Parameter Mehrere Schritte deaktiviert ist, muss der Wert dieses Parameters kleiner oder gleich der Gesamtzahl der Eingabezeitschritte sein, die nach Abzug des Wertes des Parameters Für die Validierung auszuschließende Anzahl an Zeitschritten noch vorhanden sind.
  • Wenn der Parameter Mehrere Schritte deaktiviert ist, muss das 1,5-Fache des Wertes Sequenzlänge kleiner oder gleich der Gesamtzahl der Zeitschritte nach Abzug des Wertes des Parameters Für die Validierung auszuschließende Anzahl an Zeitschritten sein.0

Long
Erklärende Trainingsvariablen
(optional)

Unabhängige Variablen aus den Daten, die zum Trainieren des Modells verwendet werden. Aktivieren Sie das Kontrollkästchen Kategorial für alle Variablen, die Klassen oder Kategorien darstellen.

Value Table
Max. Epochen
(optional)

Die maximale Anzahl von Epochen, für die das Modell trainiert wird. Die Standardeinstellung ist 20.

Long
Für die Validierung auszuschließende Anzahl an Zeitschritten
(optional)

Die Anzahl der Zeitschritte, die für die Validierung ausgeschlossen werden. Wenn z. B. der Wert 14 angegeben wird, werden die letzten 14 Zeilen im Datenrahmen als Validierungsdaten verwendet. Der Standardwert ist 10 Prozent der gesamten Zeitschritte. Der Wert sollte nach Möglichkeit nicht weniger als 5 Prozent der gesamten Zeitschritte im Eingabe-Raum-Zeit-Würfel betragen.

  • Wenn der Parameter Mehrere Schritte deaktiviert ist, muss dieser Parameterwert weniger als 25 Prozent der Gesamtzahl der Datensätze im Eingabe-Raum-Zeit-Würfel betragen.
  • Wenn der Parameter Mehrere Schritte aktiviert ist, muss dieser Parameterwert kleiner oder gleich der Hälfte des Wertes des Parameters Sequenzlänge sein.

Long
Modelltyp
(optional)

Gibt die Modellarchitektur an, die zum Trainieren des Modells verwendet wird.

  • InceptionTimeDie InceptionTime-Architektur, die zum Trainieren des Modells verwendet wird. Dies ist die Standardeinstellung.
  • ResNetDie ResNet-Architektur, die zum Trainieren des Modells verwendet wird.
  • ResCNNDie ResCNN-Architektur, die zum Trainieren des Modells verwendet wird.
  • FCNDie FCN-Architektur, die zum Trainieren des Modells verwendet wird.
  • LSTMDie LSTM-Architektur, die zum Trainieren des Modells verwendet wird.
  • TimeSeriesTransformerDie TimeSeriesTransformer-Architektur, die zum Trainieren des Modells verwendet wird.
String
Batch-Größe
(optional)

Die Anzahl der Stichproben, die gleichzeitig verarbeitet werden sollen. Die Standardeinstellung ist 64.

Abhängig von der GPU des Computers kann diese Zahl in 8, 16, 32, 64 usw. geändert werden.

Long
Modellargumente
(optional)

Zusätzliche Modellargumente, die für jedes Modell spezifisch verwendet werden. Mit diesen Argumenten können Komplexität und Größe des Modells angepasst werden. Informationen zur Modellarchitektur, den unterstützten Modellargumenten und den Standardwerten finden Sie unter Funktionsweise von Zeitserienvorhersagemodellen.

Value Table
Training beenden, wenn sich das Modell nicht mehr verbessert
(optional)

Gibt an, ob das Modelltraining beendet wird, wenn der Validierungsverlust nach fünf aufeinanderfolgenden Epochen keine Verbesserung registriert.

  • Aktiviert: Das Modelltraining wird beendet, wenn der Validierungsverlust nach fünf aufeinanderfolgenden Epochen keine Verbesserung registriert. Dies ist die Standardeinstellung.
  • Deaktiviert: Das Modelltraining wird fortgesetzt, bis die maximale Anzahl an Epochen erreicht wird.

Boolean
Ausgabe-Feature-Class
(optional)

Die Ausgabe-Feature-Class von allen Positionen im Raum-Zeit-Würfel mit vorhergesagten Werten, die als Felder gespeichert werden. Die Feature-Class wird anhand der Vorhersage des trainierten Modells für das Validierungs-Dataset erstellt. Die Ausgabe zeigt die Vorhersage für den letzten Zeitschritt an und enthält Pop-up-Diagramme, die die Zeitserienvorhersage für das Validierungs-Dataset zeigen.

Feature Class
Ausgabe-Würfel
(optional)

Ein Ausgabe-Raum-Zeit-Würfel (.nc-Datei), der die Werte des Eingabe-Raum-Zeit-Würfels enthält, die durch die vorhergesagten Werte für die entsprechenden Validierungszeitschritte ersetzt wurden.

File
Mehrere Schritte
(optional)

Gibt an, ob zum Trainieren des Vorhersagemodells für multivariate Zeitserien die Ein-Schritt-Methode oder die aus mehreren Schritten bestehende Methode verwendet wird.

  • Aktiviert: Für das Modelltraining wird die aus mehreren Schritten bestehende Methode verwendet.
  • Deaktiviert: Für das Modelltraining wird die herkömmliche Ein-Schritt-Methode verwendet. Dies ist die Standardeinstellung.

Boolean

arcpy.geoai.TrainTimeSeriesForecastingModel(in_cube, out_model, analysis_variable, sequence_length, {explanatory_variables}, {max_epochs}, {validation_timesteps}, {model_type}, {batch_size}, {arguments}, {early_stopping}, {out_features}, {out_cube}, {multistep})
NameErläuterungDatentyp
in_cube

Der NetCDF-Würfel, der die Variable enthält, mit der zukünftige Zeitschritte vorhergesagt werden sollen. Diese Datei muss eine .nc-Dateierweiterung aufweisen und mit dem Werkzeug Raum-Zeit-Würfel durch Aggregieren von Punkten erstellen, Raum-Zeit-Würfel aus definierten Positionen erstellen oder Raum-Zeit-Würfel aus multidimensionalem Raster-Layer erstellen erstellt worden sein.

File
out_model

Der Speicherort des Ausgabeordners, in dem das trainierte Modell gespeichert wird. Das trainierte Modell wird als Deep-Learning-Paketdatei (.dlpk) gespeichert.

Folder
analysis_variable

Die numerische Variable im Dataset, die für zukünftige Zeitschritte vorhergesagt wird.

String
sequence_length

Die Anzahl der vorherigen Zeitintervalle, die beim Trainieren des Modells verwendet werden sollen. Wenn die Daten saisonale Schwankungen (sich wiederholende Zyklen) enthalten, dann geben Sie die Länge an, die einer Saison entspricht.

  • Wenn der Wert des Parameters multistep False lautet, muss der Wert dieses Parameters kleiner oder gleich der Gesamtzahl der Eingabezeitschritte sein, die nach Abzug des Wertes des Parameters validation_timesteps noch vorhanden sind.
  • Wenn der Parameter multistep den Wert True aufweist, muss das 1,5-Fache des Wertes von sequence_length kleiner oder gleich der Gesamtzahl der Zeitschritte nach Abzug des Wertes des Parameters validation_timesteps sein.

Long
explanatory_variables
[explanatory_variables,...]
(optional)

Unabhängige Variablen aus den Daten, die zum Trainieren des Modells verwendet werden. Verwenden Sie den Wert True nach allen Variablen, die Klassen oder Kategorien darstellen.

Value Table
max_epochs
(optional)

Die maximale Anzahl von Epochen, für die das Modell trainiert wird. Die Standardeinstellung ist 20.

Long
validation_timesteps
(optional)

Die Anzahl der Zeitschritte, die für die Validierung ausgeschlossen werden. Wenn z. B. der Wert 14 angegeben wird, werden die letzten 14 Zeilen im Datenrahmen als Validierungsdaten verwendet. Der Standardwert ist 10 Prozent der gesamten Zeitschritte. Der Wert sollte nach Möglichkeit nicht weniger als 5 Prozent der gesamten Zeitschritte im Eingabe-Raum-Zeit-Würfel betragen.

  • Wenn der Parameter multistep den Wert False aufweist, muss dieser Parameterwert weniger als 25 Prozent der Gesamtzahl der Datensätze im Eingabe-Raum-Zeit-Würfel betragen.
  • Wenn der Parameter multistep den Wert True aufweist, muss dieser Parameterwert kleiner oder gleich der Hälfte des Wertes des Parameters sequence_length sein.

Long
model_type
(optional)

Gibt die Modellarchitektur an, die zum Trainieren des Modells verwendet wird.

  • InceptionTimeDie InceptionTime-Architektur, die zum Trainieren des Modells verwendet wird. Dies ist die Standardeinstellung.
  • ResNetDie ResNet-Architektur, die zum Trainieren des Modells verwendet wird.
  • ResCNNDie ResCNN-Architektur, die zum Trainieren des Modells verwendet wird.
  • FCNDie FCN-Architektur, die zum Trainieren des Modells verwendet wird.
  • LSTMDie LSTM-Architektur, die zum Trainieren des Modells verwendet wird.
  • TimeSeriesTransformerDie TimeSeriesTransformer-Architektur, die zum Trainieren des Modells verwendet wird.
String
batch_size
(optional)

Die Anzahl der Stichproben, die gleichzeitig verarbeitet werden sollen. Die Standardeinstellung ist 64.

Abhängig von der GPU des Computers kann diese Zahl in 8, 16, 32, 64 usw. geändert werden.

Long
arguments
[arguments,...]
(optional)

Zusätzliche Modellargumente, die für jedes Modell spezifisch verwendet werden. Mit diesen Argumenten können Komplexität und Größe des Modells angepasst werden. Informationen zur Modellarchitektur, den unterstützten Modellargumenten und den Standardwerten finden Sie unter Funktionsweise von Zeitserienvorhersagemodellen.

Value Table
early_stopping
(optional)

Gibt an, ob das Modelltraining beendet wird, wenn der Validierungsverlust nach fünf aufeinanderfolgenden Epochen keine Verbesserung registriert.

  • TRUEDas Modelltraining wird beendet, wenn der Validierungsverlust nach fünf aufeinanderfolgenden Epochen keine Verbesserung registriert. Dies ist die Standardeinstellung.
  • FALSEDas Modelltraining wird fortgesetzt, bis die maximale Anzahl an Epochen erreicht wird.
Boolean
out_features
(optional)

Die Ausgabe-Feature-Class von allen Positionen im Raum-Zeit-Würfel mit vorhergesagten Werten, die als Felder gespeichert werden. Die Feature-Class wird anhand der Vorhersage des trainierten Modells für das Validierungs-Dataset erstellt. Die Ausgabe zeigt die Vorhersage für den letzten Zeitschritt an und enthält Pop-up-Diagramme, die die Zeitserienvorhersage für das Validierungs-Dataset zeigen.

Feature Class
out_cube
(optional)

Ein Ausgabe-Raum-Zeit-Würfel (.nc-Datei), der die Werte des Eingabe-Raum-Zeit-Würfels enthält, die durch die vorhergesagten Werte für die entsprechenden Validierungszeitschritte ersetzt wurden.

File
multistep
(optional)

Gibt an, ob zum Trainieren des Vorhersagemodells für multivariate Zeitserien die Ein-Schritt-Methode oder die aus mehreren Schritten bestehende Methode verwendet wird.

  • TRUEFür das Modelltraining wird die aus mehreren Schritten bestehende Methode verwendet.
  • FALSEFür das Modelltraining wird die herkömmliche Ein-Schritt-Methode verwendet. Dies ist die Standardeinstellung.
Boolean

Codebeispiel

TrainTimeSeriesForecastingModel: Beispiel (eigenständiges Skript)

In diesem Beispiel wird die Verwendung der Funktion TrainTimeSeriesForecastingModel gezeigt.

# Name: TrainTimeSeriesForecastingModel.py
# Description: Train a time series model on space-time cube data with
# different AI models.
  
# Import system modules                                                                                                                                                                                                                                                                                                                    
import arcpy
import os

# Set local variables
datapath  = "path_to_data_for_forecasting" 
out_path = "path_to_gdb_for_forecasting"

model_path = os.path.join(out_path, "model")
in_cube = os.path.join(datapath, "test_data")
out_features = os.path.join(out_path, "forecasted_feature.gdb", "forecasted")

# Run TrainTimeSeriesForecastingModel
arcpy.geoai.TrainTimeSeriesForecastingModel(
        in_cube,
        model_path,
        "CONSUMPTION",
        12,
        None,
        20,
        2,
        "InceptionTime",
        64,
        None,
        True,
        out_features
    )

Lizenzinformationen

  • Basic: Nein
  • Standard: Nein
  • Advanced: Ja

Verwandte Themen