Zusammenfassung
Erstellt Modelle und generiert Vorhersagen mithilfe einer Adaption des "Random Forest"-Algorithmus, einer Methode für überwachtes maschinelles Lernen von Leo Breiman. Vorhersagen können sowohl für Kategorievariablen (Klassifizierung) als auch für kontinuierliche Variablen (Regression) getroffen werden. Erklärende Variablen können als Felder in der Attributtabelle der Trainings-Features vorliegen. Zusätzlich zur Validierung der Modell-Performance auf Grundlage der Trainingsdaten sind Vorhersagen für Features möglich.
Verwendung
Mit diesem Werkzeug werden Hunderte von Strukturen erstellt, die als Sammlung von Entscheidungsstrukturen bezeichnet werden, um ein Modell für die Vorhersage zu generieren. Jede Entscheidungsstruktur wird mit zufällig generierten Teilen der ursprünglichen (Trainings-)Daten erstellt. Jede Struktur generiert eine eigene Vorhersage und hat eine Stimme bei Ergebnisabstimmung. Bei dem Forest-Modell werden die Stimmen aller Entscheidungsstrukturen berücksichtigt, um das Ergebnis einer unbekannten Stichprobe vorherzusagen oder zu klassifizieren. Dies ist wichtig, da bei einzelnen Strukturen Probleme durch eine Überanpassung eines Modells entstehen können; die Kombination mehrerer Strukturen in einem Forest löst jedoch dieses Problem der Überanpassung.
Dieses Werkzeug kann in zwei verschiedenen Operationsmodi verwendet werden. Im Modus Trainieren kann die Performance verschiedener Modelle beim Erkunden unterschiedlicher erklärender Variablen und Werkzeugeinstellungen ausgewertet werden. Wenn Sie ein gutes Modell gefunden haben, können Sie den Modus Trainieren und vorhersagen verwenden.
Dieses Werkzeug ist datenabhängig und eignet sich am besten für große Datasets. Für ein optimales Ergebnis sollte es mit mindestens mehreren hundert Features trainiert werden. Für kleine Datasets ist dieses Werkzeug nicht geeignet.
Die Eingabe-Trainings-Features können Tabellen, Punkte, Linien oder Polygon-Features sein. Dieses Werkzeug funktioniert nicht mit Multipart-Daten.
Features mit Vorhersage- oder erklärenden Feldern, die mindestens einen NULL-Wert oder eine leere Zeichenfolge aufweisen, werden von der Ausgabe ausgeschlossen. Sie können die Werte bei Bedarf mit dem Werkzeug Feld berechnen ändern.
Diese Werkzeug erzeugt je nach Operationsmodus verschiedene Ausgaben:
- Die Option Trainieren führt zu den folgenden Ausgaben:
- Trainierte Ausgabe-Features: Enthält alle im erstellten Modell verwendeten Eingabe-Training-Features und erklärenden Variablen. Auch die Vorhersagen für alle Features, die zum Trainieren des Modells verwendet wurden, sind darin enthalten. Dies kann bei der Bewertung der Performance des erstellten Modells hilfreich sein.
- Zusammenfassungsmeldungen des Werkzeugs: Meldungen, die Ihnen dabei helfen, die Performance des erstellten Modells besser zu verstehen. Die Meldungen enthalten Informationen zu Modelleigenschaften, Variablenbedeutung und Validierungsdiagnosen.
- Die Option Trainieren und vorhersagen führt zu den folgenden drei Ausgaben:
- Trainierte Ausgabe-Features: Enthält alle im erstellten Modell verwendeten Eingabe-Training-Features und erklärenden Variablen. Auch die Vorhersagen für alle Features, die zum Trainieren des Modells verwendet wurden, sind darin enthalten. Dies kann bei der Bewertung der Performance des erstellten Modells hilfreich sein.
- Vorhergesagte Ausgabe-Features: Ein Layer mit vorhergesagten Ergebnissen. Vorhersagen werden mit dem Modell, das aus dem Training-Layer generiert wurde, auf den vorherzusagenden Layer angewendet (verwenden Sie die Option Eingabe-Vorhersage-Features).
- Zusammenfassungsmeldungen des Werkzeugs: Meldungen, die Ihnen dabei helfen, die Performance des erstellten Modells besser zu verstehen. Die Meldungen enthalten Informationen zu Modelleigenschaften, Variablenbedeutung und Validierungsdiagnosen.
- Die Option Trainieren führt zu den folgenden Ausgaben:
Mit dem Parameter Tabelle zur Variablenbedeutung erstellen können Sie eine Tabelle erstellen, um ein Diagramm der Variablenbedeutung für die Auswertung anzuzeigen. Die höchsten 20 Werte für die Variablenbedeutung werden auch im Meldungsfenster angegeben.
Erklärende Variablen können aus Feldern stammen und sollten eine Reihe von Werten enthalten. Wenn es sich bei der erklärenden Variablen um eine Kategorievariable handelt, muss das Kontrollkästchen Kategorisch aktiviert werden (Variablen des Typs "String" werden automatisch aktiviert). Erklärende Kategorievariablen dürfen höchstens 60 Einzelwerte enthalten, eine geringere Anzahl von Kategorien führt jedoch zu einer besseren Performance des Modells. Je mehr Kategorien eine Variable bei einer bestimmten Datengröße enthält, desto eher dominiert sie das Modell, sodass die Vorhersageergebnisse an Effektivität verlieren.
Beim Abgleich von erklärenden Variablen müssen die Felder Training und Prediction denselben Typ aufweisen (z. B. muss ein Double-Feld in Training mit einem Double-Feld in Prediction abgeglichen werden).
Forest-basierte Modelle extrapolieren nicht, mit ihnen kann nur ein Wert klassifiziert oder vorhergesagt werden, für den das Modell trainiert wurde. Verwenden Sie zum Trainieren des Modells Training-Features und erklärende Variablen innerhalb des Bereichs Ihrer Ziel-Features und -Variablen. Das Werkzeug kann nicht erfolgreich ausgeführt werden, wenn die erklärenden Variablen für die Vorhersage Kategorien enthalten, die in den Trainings-Features nicht vorhanden sind.
Der Standardwert für den Parameter Anzahl der Strukturen ist 100. Die Erhöhung der Anzahl von Strukturen im Forest-Modell führt zu einer genaueren Modellvorhersage, für die Berechnung des Modells wird jedoch mehr Zeit benötigt.
Unterstützt werden ein einzelner Layer für das Training und ein einzelner Layer für die Vorhersage. Wenn Sie mehrere Datasets miteinander kombinieren möchten, verwenden Sie zum Generieren von Eingabedaten die Werkzeuge Gitter mit mehreren Variablen erstellen und Gitter mit mehreren Variablen anreichern.
Dieses Geoverarbeitungswerkzeug wird unterstützt durch ArcGIS GeoAnalytics Server. Die Analyse wird auf dem GeoAnalytics Server ausgeführt, und die Ergebnisse werden in den eigenen Inhalten in ArcGIS Enterprise gespeichert.
Bei der Ausführung von GeoAnalytics Server-Werkzeugen wird die Analyse auf dem GeoAnalytics Server abgeschlossen. Für eine optimale Performance sollten die Daten dem GeoAnalytics Server über Feature-Layer zur Verfügung stehen, die auf Ihrem ArcGIS Enterprise-Portal gehostet werden. Alternativ können Big-Data-Dateifreigaben verwendet werden. Daten, auf die der GeoAnalytics Server nicht lokal zugreifen kann, werden vor Analysebeginn auf den GeoAnalytics Server verschoben. Dadurch dauert die Ausführung eines Werkzeugs länger. Es kann zudem vorkommen, dass das Verschieben der Daten von ArcGIS Pro zum GeoAnalytics Server fehlschlägt. Die Wahrscheinlichkeit eines Fehlers hängt dabei von der Netzwerkgeschwindigkeit sowie der Größe und Komplexität der Daten ab. Daher wird empfohlen, dass Sie Ihre Daten stets freigeben oder eine Big-Data-Dateifreigabe erstellen.
Weitere Informationen zum Freigeben von Daten in Ihrem Portal
Weitere Informationen zum Erstellen einer Big-Data-Dateifreigabe über Server Manager
Syntax
arcpy.geoanalytics.Forest(prediction_type, in_features, {output_trained_name}, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {create_variable_importance_table}, {features_to_predict}, {explanatory_variable_matching}, {number_of_trees}, {minimum_leaf_size}, {maximum_tree_depth}, {sample_size}, {random_variables}, {percentage_for_validation}, {data_store})
Parameter | Erklärung | Datentyp |
prediction_type | Gibt den Operationsmodus des Werkzeugs an. Das Werkzeug kann ausgeführt werden, um ein Modell ausschließlich für die Bewertung der Performance zu trainieren, Features vorherzusagen oder eine vorhergesagte Oberfläche zu erstellen.
| String |
in_features | Die Feature-Class mit dem Parameter variable_predict und den erklärenden Feldern mit Trainings-Variablen. | Record Set |
output_trained_name (optional) | Der Name des Ausgabe-Feature-Layers. | String |
variable_predict (optional) | Die Variable aus dem Parameter in_features mit den Werten, die zum Trainieren des Modells verwendet werden sollen. Dieses Feld enthält bekannte (Trainings-)Werte der Variablen, mit denen eine Vorhersage an unbekannten Positionen getroffen wird. | Field |
treat_variable_as_categorical (optional) |
| Boolean |
explanatory_variables [[Variable, Categorical],...] (optional) | Eine Liste der Felder, die erklärende Variablen darstellen und die Vorhersage des Wertes oder der Kategorie von variable_predict unterstützen. Verwenden Sie den Parameter treat_variable_as_categorical für alle Variablen, die Klassen oder Kategorien darstellen (z. B. Landbedeckung oder Anwesenheit oder Abwesenheit). Geben Sie für alle Werte der Variablen, die Klassen oder Kategorien wie Landbedeckung oder Anwesenheit oder Abwesenheit darstellen, true an und false, wenn es sich um eine kontinuierliche Variable handelt. | Value Table |
create_variable_importance_table (optional) | Gibt an, ob die Ausgabetabelle Informationen enthält, die die Bedeutung der einzelnen, im Modell verwendeten erklärenden Variablen beschreiben.
| Boolean |
features_to_predict (optional) | Ein Feature-Layer, der Positionen darstellt, an denen Vorhersagen getroffen werden. Dieser Feature-Layer muss auch erklärende Variablen enthalten, die als Felder bereitgestellt wurden und den von den Trainingsdaten verwendeten Feldern entsprechen. | Record Set |
explanatory_variable_matching [[Prediction, Training],...] (optional) | Eine Liste der angegebenen Werte für explanatory_variables aus in_features rechts und den ihnen entsprechenden Feldern aus features_to_predict links, z. B. [["LandCover2000", "LandCover2010"], ["Income", "PerCapitaIncome"]]. | Value Table |
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 von Strukturen beträgt 100. | Long |
minimum_leaf_size (optional) | Die minimale Anzahl der Beobachtungen, die mindestens erforderlich sind, um ein Element (also den Endpunkt einer Struktur, der keine weiteren Verzweigungen hat) beizubehalten. Das Standardminimum für die Regression ist 5, das für die Klassifizierung 1. Bei sehr großen Daten führt eine Erhöhung dieser Zahlen zu einer Erhöhung der Laufzeit des Werkzeugs. | Long |
maximum_tree_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. Die Standardeinstellung ist datenabhängig und abhängig von der Anzahl der erstellten Strukturen und der berücksichtigten Variablen. | Long |
sample_size (optional) | Prozentsatz der für jede Entscheidungsstruktur verwendeten in_features. Die Standardeinstellung liegt bei 100 Prozent der Daten. Samples für jede Struktur werden nach dem Zufallsprinzip aus zwei Dritteln der angegebenen Daten entnommen. Alle Entscheidungsbäume im Wald werden mithilfe einer zufälligen Stichprobe oder einer zufälligen Teilmenge (etwa zwei Drittel) der verfügbaren Trainingsdaten erstellt. Durch die Verwendung eines niedrigeren Prozentsatzes der Eingabedaten für die einzelnen Entscheidungsbäume wird die Geschwindigkeit des Werkzeugs bei sehr großen Datasets beschleunigt. | Long |
random_variables (optional) | Die Anzahl der erklärenden Variablen für die Erstellung der einzelnen Entscheidungsstrukturen. Alle Entscheidungsbäume im Wald werden mithilfe einer zufälligen Teilmenge der erklärenden Variablen erstellt. Durch eine Erhöhung der Anzahl der in den einzelnen Entscheidungsbäumen verwendeten Variablen steigt die Wahrscheinlichkeit einer Überanpassung des Modells, vor allem dann, wenn dominante Variablen vorhanden sind. Eine gängige Praxis besteht darin, die Quadratwurzel aus der Gesamtzahl der erklärenden Variablen zu ziehen, wenn variable_predict eine numerische Variable ist, oder die Gesamtzahl der erklärenden Variablen durch 3 zu teilen, wenn variable_predict eine Kategorievariable ist. | Long |
percentage_for_validation (optional) | Der Prozentsatz (zwischen 10 und 50 Prozent) für in_features, die als Test-Dataset für die Validierung reserviert sind. Das Modell wird ohne diese zufällige Teilmenge der Daten trainiert, und die beobachteten Werte für diese Features werden mit dem vorhergesagten Wert verglichen. Der Standardwert ist 10 Prozent. | Long |
data_store (optional) | Gibt den ArcGIS Data Store für das Speichern der Ausgabe an. Die Standardeinstellung ist SPATIOTEMPORAL_DATA_STORE. Alle in einem Big Data Store vom Typ "spatiotemporal" gespeicherten Ergebnisse werden im WGS84 gespeichert. Ergebnisse, die in einem Data Store vom Typ "relational" gespeichert werden, behalten ihr Koordinatensystem bei.
| String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
output_trained | Die Ausgabe mit den für das Training verwendeten Eingabevariablen sowie die beobachtete Variable zur Vorhersage von Parametern und die zugehörigen Vorhersagen, mit denen die Performance des Modells weiter geprüft werden kann. | Datensatz |
variable_of_importance | Tabelle mit Informationen, die die Bedeutung der einzelnen, im erstellten Modell verwendeten erklärenden Variablen beschreiben. | Datensatz |
output_predicted | Ein Layer, der die Vorhersagen des Modells empfängt. | Datensatz |
Codebeispiel
Das folgende Skript veranschaulicht die Verwendung des Werkzeugs ForestBasedClassificationAndRegression im Python-Fenster.
In diesem Skript werden Netzwerk-Features beschrieben und es wird ein Stichproben-Layer mit 2500 Features erstellt.
#-------------------------------------------------------------------------------
# Name: Forest.py
# Description: Run Forest on sales data from 1980 and predict for sales in 1981
#
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
arcpy.env.workspace = "c:/data/commercial.gdb"
# Set local variables
trainingDataset = "https://analysis.org.com/server/rest/services/Hosted/sales/FeatureServer/0"
predictionDataset = "https://analysis.org.com/server/rest/services/Hosted/next_year/FeatureServer/0"
outputName = "training"
outputPredictedName = "predicted"
# Execute Forest
arcpy.geoanalytics.Forest("TRAIN_AND_PREDICT", inputDataset, outputName, "PERIMETER", None, ""STORE_CATEGORY true;AVG_INCOME false;POPULATION false", None, predictionDataset,
"STORE_CATEGORY STORE_CATEGORY;AVG_INCOME MEAN_INCOME; POPULATION POPULATION", 100, , , 120, , 10, "SPATIOTEMPORAL_DATA_STORE")
Umgebungen
- Ausgabe-Koordinatensystem
Das Koordinatensystem, das für die Analyse verwendet wird. Die Analyse wird im Eingabe-Koordinatensystem ausgeführt, sofern nicht anders durch diesen Parameter angegeben. Für GeoAnalytics Tools werden die Endergebnisse im Data Store vom Typ "spatiotemporal" in WGS84 gespeichert.
Lizenzinformationen
- Basic: Erfordert ArcGIS GeoAnalytics Server
- Standard: Erfordert ArcGIS GeoAnalytics Server
- Advanced: Erfordert ArcGIS GeoAnalytics Server