Forest-basierte Vorhersage (Space Time Pattern Mining)

Zusammenfassung

Sagt mithilfe einer Adaption des "Random Forest"-Algorithmus von Leo Breiman die Werte für jede Position eines Raum-Zeit-Würfels vorher. Das Forest-Regressionsmodell wird mithilfe von Zeitfenstern an jeder Position des Raum-Zeit-Würfels trainiert.

Weitere Informationen zur Funktionsweise der Forest-basierten Vorhersage

Abbildung

Abbildung zum Werkzeug "Forest-basierte Vorhersage"
Sagen Sie mit dem Werkzeug "Forest-basierte Vorhersage" Zeitserien vorher.

Verwendung

  • Dieses Werkzeug akzeptiert netCDF-Dateien, die mit dem Werkzeug Raum-Zeit-Würfel durch Aggregieren von Punkten erstellen, mit dem Werkzeug Raum-Zeit-Würfel aus definierten Features erstellen und mit dem Werkzeug Raum-Zeit-Würfel aus multidimensionalem Raster-Layer erstellen erstellt wurden.

  • Verglichen mit anderen Vorhersagewerkzeugen im Toolset Zeitserienvorhersage ist dieses Werkzeug das komplexeste, umfasst allerdings auch die wenigsten Annahmen über die Daten. Empfohlen wird es für Zeitserien mit komplizierten Shapes und Trends, die mit einfachen mathematischen Funktionen schwierig zu modellieren sind, oder wenn den Annahmen anderer Methoden nicht entsprochen wird.

  • Mit dem Werkzeug Vorhersagen nach Position auswerten können mehrere vorhergesagte Raum-Zeit-Würfel verglichen und zusammengeführt werden. Auf diese Weise können Sie mit unterschiedlichen Vorhersagewerkzeugen und -parametern mehrere Vorhersagewürfel erstellen. Das Werkzeug ermittelt dann mit dem Vorhersage-RMSE (Root Mean Square Error) oder dem Validierungs-RMSE die beste Vorhersage für jeden Position.

  • Für jede Position im Eingabe-Raum-Zeit-Würfel erstellt das Werkzeug zwei Modelle für unterschiedliche Zwecke.

    • Vorhersagemodell: Dieses Modell wird für die Vorhersage von Werten des Raum-Zeit-Würfels verwendet, indem mit den Werten der Zeitserie ein Forest erstellt wird und dieser Forest für die Vorhersage der Werte zukünftiger Zeitintervalle verwendet wird. Die Eignung des Vorhersagemodell für die Werte des Raum-Zeit-Würfels wird mit dem Vorhersage-RMSE-Wert gemessen.
    • Validierungsmodell: Mit diesem Modell wird das Vorhersagemodell validiert und getestet, wie genau es Werte vorhersagen kann. Wenn eine Zahl größer als 0 für den Parameter Für die Validierung auszuschließende Anzahl an Zeitintervallen angegeben wird, wird dieses Modell mit den einbezogenen Zeitintervallen erstellt. Anschließend werden damit die Werte der ausgeschlossenen Zeitintervalle vorhergesagt. So können Sie erkennen, wie gut das Modell Werte vorhersagen kann. Die Übereinstimmung der vorhergesagten Werte mit den ausgeschlossenen Werten wird mit dem Validierungs-RMSE-Wert gemessen.

    Weitere Informationen zu Vorhersagemodell, Validierungsmodell und RMSE-Statistiken

  • Die Parameterwerte der Ausgabe-Features werden dem Bereich Inhalt hinzugefügt, wobei das Rendering auf dem letzten vorhergesagten Zeitintervall basiert.

  • Das Werkzeug erstellt Geoverarbeitungsmeldungen und Pop-up-Diagramme, damit Sie die Ergebnisse der Vorhersage leichter verstehen und visualisieren können. Die Meldungen enthalten Informationen über die Struktur des Raum-Zeit-Würfels und Summenstatistiken der RMSE-Werte und Saisonlängen. Wenn Sie mit dem Navigationswerkzeug Erkunden auf ein Feature klicken, wird im Bereich Pop-up ein Liniendiagramm mit den Werten des Raum-Zeit-Würfels, den angepassten Forest-Werten, den vorhergesagten Werten und den Konfidenzgrenzen für diese Position angezeigt.

  • Der Parameter Ausreißeroption kann verwendet werden, um statistisch signifikante Ausreißer für Zeitserienwerte an jeder Position zu erkennen.

    Weitere Informationen zum Erkennen von Ausreißern in einer Zeitserie

  • Wenn Sie die Option Ausreißer identifizieren des Parameters Ausreißeroption auswählen, empfiehlt es sich, einen Wert für den Parameter Zeitintervallfenster einzugeben, anstatt den Parameter leer zu lassen und an jeder Position ein anderes Zeitintervallfenster zu schätzen. Bei jeder Position verwendet das Forest-Modell die Zeitintervalle im ersten Zeitintervallfenster, um das Vorhersagemodell zu trainieren. Ausreißer werden nur für die verbleibenden Zeitintervalle gesucht. Wenn bei unterschiedlichen Positionen eine unterschiedliche Anzahl von Zeitintervallen vom Training ausgeschlossen werden, können Summenstatistiken wie die mittlere, minimale und maximale Anzahl der Ausreißer je Zeitintervall oder je Position einen falschen Eindruck erwecken.

  • Die Entscheidung über die Anzahl der Zeitintervalle, die für die Validierung ausgeschlossen werden sollen, ist wichtig. Je mehr Zeitintervalle ausgeschlossen werden, desto weniger stehen für die Schätzung des Validierungsmodells zur Verfügung. Wenn jedoch zu wenige Zeitintervalle ausgeschlossen werden, wird der Validierungs-RMSE mit einer geringen Datenmenge geschätzt und kann irreführend sein. Sie sollten so viele Zeitintervalle wie möglich ausschließen und gleichzeitig genügend Zeitintervalle beibehalten, um das Validierungsmodell zu schätzen. Es empfiehlt sich außerdem, mindestens so viele Zeitintervalle für die Validierung zurückzuhalten, wie vorhergesagt werden sollen, sofern der Raum-Zeit-Würfel eine entsprechende Anzahl an Zeitintervallen aufweist.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Raum-Zeit-Würfel

Der NetCDF-Würfel, der die Variable enthält, die für zukünftige Zeitintervalle vorhergesagt werden soll. 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
Analysevariable

Die numerische Variable in der NetCDF-Datei, die für zukünftige Zeitintervalle vorhergesagt wird.

String
Ausgabe-Features

Die Ausgabe-Feature-Class von allen Positionen im Raum-Zeit-Würfel mit vorhergesagten Werten, die als Felder gespeichert werden. Der Layer zeigt die Vorhersage für das letzte Zeitintervall an und enthält Pop-up-Diagramme, die die Zeitserie, Vorhersagen und 90-Prozent-Konfidenzgrenzen für jede Position enthalten.

Feature Class
Ausgabe-Raum-Zeit-Würfel
(optional)

Ein neuer Raum-Zeit-Würfel (.nc-Datei), der die Werte des Eingabe-Raum-Zeit-Würfels mit den angehängten vorhergesagten Zeitintervallen enthält. Das Werkzeug Raum-Zeit-Würfel in 3D visualisieren kann verwendet werden, um alle beobachteten und vorhergesagten Werte gleichzeitig zu sehen.

File
Anzahl an Zeitintervallen für die Vorhersage
(optional)

Eine positive ganze Zahl, mit der die Anzahl an Zeitintervallen für die Vorhersage angegeben wird. Dieser Wert darf nicht mehr als 50 Prozent aller Zeitintervalle im Eingabe-Raum-Zeit-Würfel betragen. Der Standardwert ist ein Zeitintervall.

Long
Zeitintervallfenster
(optional)

Die Anzahl der vorherigen Zeitintervalle, die beim Trainieren des Modells verwendet werden sollen. Wenn Ihre Daten eine Saisonalität (sich wiederholende Zyklen) zeigen, dann geben Sie die Anzahl der Zeitschritte, die einer Saison entsprechen, an. Dieser Wert darf nicht mehr als ein Drittel der Anzahl der Zeitschritte im Eingabe-Raum-Zeit-Würfel betragen. Wird kein Wert angegeben, wird mittels einer spektralen Dichtefunktion ein Zeitfenster für jede Position geschätzt.

Weitere Informationen zu saisonalen Schwankungen und zur Auswahl eines Zeitfensters

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

Die Anzahl an Zeitintervallen am Ende jeder Zeitserie, die für die Validierung ausgeschlossen wird. Der Standardwert ist 10 Prozent (abgerundet) der Anzahl an Eingabe-Zeitintervallen. Der Wert darf nicht größer als 25 Prozent der Anzahl an Zeitintervallen sein. Geben Sie den Wert 0 an, um keine Zeitintervalle auszuschließen.

Long
Anzahl der Strukturen
(optional)

Die Anzahl der Strukturen, die im Forest-Modell erstellt werden sollen. Eine höhere Anzahl von Strukturen führt zu einer genaueren Modellvorhersage, für die Berechnung des Modells wird jedoch mehr Zeit benötigt. Die Standardzahl der Strukturen beträgt 100. Dieser Wert muss mindestens 1 und darf nicht größer als 1.000 sein.

Long
Minimale Elementgröße
(optional)

Die minimale Anzahl der Beobachtungen, die mindestens erforderlich sind, um ein Element (den Endpunkt einer Struktur, der keine weiteren Verzweigungen hat) beizubehalten. Bei sehr großen Daten führt eine Erhöhung dieser Zahl zu einer Erhöhung der Laufzeit des Werkzeugs.

Long
Maximale Strukturtiefe
(optional)

Die maximale Anzahl von Teilungen entlang einer Struktur. Je größer die maximale Tiefe, desto mehr Teilungen werden erstellt. Dadurch steigt das Risiko einer Überanpassung des Modells. Wird kein Wert angegeben, wird durch das Werkzeug basierend auf der Anzahl der durch das Modell erstellten Strukturen und der Größe des Zeitintervallfensters ein Wert ermittelt.

Long
Prozentsatz des Trainings verfügbar pro Struktur
(optional)

Der Prozentsatz der Trainingsdaten, die für die Anpassung des Vorhersagemodells verwendet werden sollen. Die Trainingsdaten bestehen aus verknüpften erklärenden und abhängigen Variablen, die mit Zeitfenstern erstellt wurden. Alle verbleibenden Trainingsdaten werden zum Optimieren der Parameter des Vorhersagemodells verwendet. Der Standardwert ist 100 Prozent.

Long
Vorhersageansatz
(optional)

Gibt an, wie die erklärenden und abhängigen Variablen beim Training des Forest-Modells an jeder Position dargestellt werden sollen.

Zum Trainieren des Forest-Modells, das für Vorhersagen verwendet werden soll, müssen mit Zeitfenstern Sätze aus erklärenden und abhängigen Variablen erstellt werden. Verwenden Sie diesen Parameter, um anzugeben, ob diese Variablen linear trendbereinigt werden sollen und ob die abhängige Variable durch ihren Raw-Wert oder durch das Residuum eines linearen Regressionsmodells dargestellt werden soll. Dieses lineare Regressionsmodell verwendet alle Zeitintervalle innerhalb eines Zeitfensters als erklärende Variablen und das folgende Zeitintervall als abhängige Variable. Das Residuum wird durch Subtraktion des auf linearer Regression basierenden vorhergesagten Wertes vom Raw-Wert der abhängigen Variable berechnet.

  • Modell mit Wert erstellenWerte innerhalb des Zeitfensters werden nicht trendbereinigt, und die abhängige Variable wird durch ihren Raw-Wert dargestellt.
  • Modell mit Wert nach Trendbereinigung erstellenWerte innerhalb des Zeitfensters werden linear trendbereinigt, und die abhängige Variable wird durch ihren trendbereinigten Wert dargestellt. Dies ist die Standardeinstellung.
  • Modell nach Residuum erstellenWerte innerhalb des Zeitfensters werden nicht trendbereinigt, und die abhängige Variable wird durch das Residuum eines linearen Regressionsmodells unter Verwendung der Werte innerhalb des Zeitfensters als erklärende Variablen dargestellt.
  • Modell nach trendbereinigtem Residuum erstellenWerte innerhalb des Zeitfensters werden linear trendbereinigt, und die abhängige Variable wird durch das Residuum eines linearen Regressionsmodells unter Verwendung der trendbereinigten Werte innerhalb des Zeitfensters als erklärende Variablen dargestellt.
String
Ausreißeroption
(optional)

Gibt an, ob statistisch signifikante Ausreißer in einer Zeitserie identifiziert werden.

  • KeineAusreißer werden nicht identifiziert. Dies ist die Standardeinstellung.
  • Ausreißer identifizierenAusreißer werden mithilfe des generalisierten ESD-Tests identifiziert.
String
Konfidenzniveau
(optional)

Gibt das Konfidenzniveau des Tests für Ausreißer in einer Zeitserie an.

  • 90 %Das Konfidenzniveau für den Test beträgt 90 Prozent. Dies ist die Standardeinstellung.
  • 95 %Das Konfidenzniveau für den Test beträgt 95 Prozent.
  • 99%Das Konfidenzniveau für den Test beträgt 99 Prozent.
String
Maximale Anzahl von Ausreißern

Die maximale Anzahl von Zeitintervallen, die für jede Position als Ausreißer deklariert werden können. Der Standardwert entspricht 5 Prozent (abgerundet) der Anzahl der Zeitintervalle des Eingabe-Raum-Zeit-Würfels (es wird immer ein Wert von mindestens 1 verwendet). Dieser Wert darf 20 Prozent der Anzahl der Zeitintervalle nicht überschreiten.

Long

arcpy.stpm.ForestBasedForecast(in_cube, analysis_variable, output_features, {output_cube}, {number_of_time_steps_to_forecast}, {time_window}, {number_for_validation}, {number_of_trees}, {minimum_leaf_size}, {maximum_depth}, {sample_size}, {forecast_approach}, {outlier_option}, {level_of_confidence}, maximum_number_of_outliers)
NameErläuterungDatentyp
in_cube

Der NetCDF-Würfel, der die Variable enthält, die für zukünftige Zeitintervalle vorhergesagt werden soll. 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
analysis_variable

Die numerische Variable in der NetCDF-Datei, die für zukünftige Zeitintervalle vorhergesagt wird.

String
output_features

Die Ausgabe-Feature-Class von allen Positionen im Raum-Zeit-Würfel mit vorhergesagten Werten, die als Felder gespeichert werden. Der Layer zeigt die Vorhersage für das letzte Zeitintervall an und enthält Pop-up-Diagramme, die die Zeitserie, Vorhersagen und 90-Prozent-Konfidenzgrenzen für jede Position enthalten.

Feature Class
output_cube
(optional)

Ein neuer Raum-Zeit-Würfel (.nc-Datei), der die Werte des Eingabe-Raum-Zeit-Würfels mit den angehängten vorhergesagten Zeitintervallen enthält. Das Werkzeug Raum-Zeit-Würfel in 3D visualisieren kann verwendet werden, um alle beobachteten und vorhergesagten Werte gleichzeitig zu sehen.

File
number_of_time_steps_to_forecast
(optional)

Eine positive ganze Zahl, mit der die Anzahl an Zeitintervallen für die Vorhersage angegeben wird. Dieser Wert darf nicht mehr als 50 Prozent aller Zeitintervalle im Eingabe-Raum-Zeit-Würfel betragen. Der Standardwert ist ein Zeitintervall.

Long
time_window
(optional)

Die Anzahl der vorherigen Zeitintervalle, die beim Trainieren des Modells verwendet werden sollen. Wenn Ihre Daten eine Saisonalität (sich wiederholende Zyklen) zeigen, dann geben Sie die Anzahl der Zeitschritte, die einer Saison entsprechen, an. Dieser Wert darf nicht mehr als ein Drittel der Anzahl der Zeitschritte im Eingabe-Raum-Zeit-Würfel betragen. Wird kein Wert angegeben, wird mittels einer spektralen Dichtefunktion ein Zeitfenster für jede Position geschätzt.

Long
number_for_validation
(optional)

Die Anzahl an Zeitintervallen am Ende jeder Zeitserie, die für die Validierung ausgeschlossen wird. Der Standardwert ist 10 Prozent (abgerundet) der Anzahl an Eingabe-Zeitintervallen. Der Wert darf nicht größer als 25 Prozent der Anzahl an Zeitintervallen sein. Geben Sie den Wert 0 an, um keine Zeitintervalle auszuschließen.

Long
number_of_trees
(optional)

Die Anzahl der Strukturen, die im Forest-Modell erstellt werden sollen. Eine höhere Anzahl von Strukturen führt zu einer genaueren Modellvorhersage, für die Berechnung des Modells wird jedoch mehr Zeit benötigt. Die Standardzahl der Strukturen beträgt 100. Dieser Wert muss mindestens 1 und darf nicht größer als 1.000 sein.

Long
minimum_leaf_size
(optional)

Die minimale Anzahl der Beobachtungen, die mindestens erforderlich sind, um ein Element (den Endpunkt einer Struktur, der keine weiteren Verzweigungen hat) beizubehalten. Bei sehr großen Daten führt eine Erhöhung dieser Zahl zu einer Erhöhung der Laufzeit des Werkzeugs.

Long
maximum_depth
(optional)

Die maximale Anzahl von Teilungen entlang einer Struktur. Je größer die maximale Tiefe, desto mehr Teilungen werden erstellt. Dadurch steigt das Risiko einer Überanpassung des Modells. Wird kein Wert angegeben, wird durch das Werkzeug basierend auf der Anzahl der durch das Modell erstellten Strukturen und der Größe des Zeitintervallfensters ein Wert ermittelt.

Long
sample_size
(optional)

Der Prozentsatz der Trainingsdaten, die für die Anpassung des Vorhersagemodells verwendet werden sollen. Die Trainingsdaten bestehen aus verknüpften erklärenden und abhängigen Variablen, die mit Zeitfenstern erstellt wurden. Alle verbleibenden Trainingsdaten werden zum Optimieren der Parameter des Vorhersagemodells verwendet. Der Standardwert ist 100 Prozent.

Weitere Informationen zum Training des Forest-Vorhersagemodells

Long
forecast_approach
(optional)

Gibt an, wie die erklärenden und abhängigen Variablen beim Training des Forest-Modells an jeder Position dargestellt werden sollen.

Zum Trainieren des Forest-Modells, das für Vorhersagen verwendet werden soll, müssen mit Zeitfenstern Sätze aus erklärenden und abhängigen Variablen erstellt werden. Verwenden Sie diesen Parameter, um anzugeben, ob diese Variablen linear trendbereinigt werden sollen und ob die abhängige Variable durch ihren Raw-Wert oder durch das Residuum eines linearen Regressionsmodells dargestellt werden soll. Dieses lineare Regressionsmodell verwendet alle Zeitintervalle innerhalb eines Zeitfensters als erklärende Variablen und das folgende Zeitintervall als abhängige Variable. Das Residuum wird durch Subtraktion des auf linearer Regression basierenden vorhergesagten Wertes vom Raw-Wert der abhängigen Variable berechnet.

Weitere Informationen zum Parameter "Vorhersageansatz"

  • VALUEWerte innerhalb des Zeitfensters werden nicht trendbereinigt, und die abhängige Variable wird durch ihren Raw-Wert dargestellt.
  • VALUE_DETRENDWerte innerhalb des Zeitfensters werden linear trendbereinigt, und die abhängige Variable wird durch ihren trendbereinigten Wert dargestellt. Dies ist die Standardeinstellung.
  • RESIDUALWerte innerhalb des Zeitfensters werden nicht trendbereinigt, und die abhängige Variable wird durch das Residuum eines linearen Regressionsmodells unter Verwendung der Werte innerhalb des Zeitfensters als erklärende Variablen dargestellt.
  • RESIDUAL_DETRENDWerte innerhalb des Zeitfensters werden linear trendbereinigt, und die abhängige Variable wird durch das Residuum eines linearen Regressionsmodells unter Verwendung der trendbereinigten Werte innerhalb des Zeitfensters als erklärende Variablen dargestellt.
String
outlier_option
(optional)

Gibt an, ob statistisch signifikante Ausreißer in einer Zeitserie identifiziert werden.

  • NONEAusreißer werden nicht identifiziert. Dies ist die Standardeinstellung.
  • IDENTIFYAusreißer werden mithilfe des generalisierten ESD-Tests identifiziert.
String
level_of_confidence
(optional)

Gibt das Konfidenzniveau des Tests für Ausreißer in einer Zeitserie an.

  • 90%Das Konfidenzniveau für den Test beträgt 90 Prozent. Dies ist die Standardeinstellung.
  • 95%Das Konfidenzniveau für den Test beträgt 95 Prozent.
  • 99%Das Konfidenzniveau für den Test beträgt 99 Prozent.
String
maximum_number_of_outliers

Die maximale Anzahl von Zeitintervallen, die für jede Position als Ausreißer deklariert werden können. Der Standardwert entspricht 5 Prozent (abgerundet) der Anzahl der Zeitintervalle des Eingabe-Raum-Zeit-Würfels (es wird immer ein Wert von mindestens 1 verwendet). Dieser Wert darf 20 Prozent der Anzahl der Zeitintervalle nicht überschreiten.

Long

Codebeispiel

ForestBasedForecast – Beispiel 1 (Python-Fenster)

Das folgende Python-Skript veranschaulicht die Verwendung des Werkzeugs ForestBasedForecast.

import arcpy
arcpy.env.workspace = "C:/Analysis"

# Forecast four time steps using a random forest with detrending.
arcpy.stpm.ForestBasedForecast("CarTheft.nc","Cars_NONE_ZEROS", 
                               "Analysis.gdb/Forecasts", "outForecastCube.nc"
                               4, 3, 5, 100, "", "", 100, "VALUE_DETREND")
ForestBasedForecast – Beispiel 2 (eigenständiges Skript)

Das folgende Python-Skript veranschaulicht die Verwendung des Werkzeugs ForestBasedForecast zur Vorhersage der Anzahl von Autodiebstählen.

# Forecast change in car thefts using a random forest.

# Import system modules.
import arcpy

# Set property to overwrite existing output, by default.
arcpy.env.overwriteOutput = True

# Set workspace.
workspace = r"C:\Analysis"
arcpy.env.workspace = workspace

# Forecast three time steps using a random forest based on change.
arcpy.stpm.ForestBasedForecast("CarTheft.nc","Cars_NONE_ZEROS", 
                               "Analysis.gdb/Forecasts", "outForecastCube.nc"
                               4, 3, 5, 100, "", "", 100, "CHANGE",
                               "IDENTIFY", "90%", 4)

# Create a feature class visualizing the forecasts.
arcpy.stpm.VisualizeSpaceTimeCube3D("outForecastCube.nc", "Cars_NONE_ZEROS", 
                                    "VALUE", "Analysis.gdb/ForecastsFC")

Lizenzinformationen

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

Verwandte Themen