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.
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 Spark. Bei Analysen auf Ihrem Desktop-Computer werden mehrere Kerne parallel verwendet. Weitere Informationen über die Ausführung der Analyse finden Sie unter Überlegungen zu GeoAnalytics Desktop-Werkzeugen.
Bei der Ausführung von GeoAnalytics Desktop-Werkzeugen wird die Analyse auf Ihrem Desktop-Computer durchgeführt. Für eine optimale Performance sollten die Daten auf Ihrem Desktop verfügbar sein. Wenn Sie einen gehosteten Feature-Layer verwenden, wird empfohlen, ArcGIS GeoAnalytics Server zu verwenden. Wenn Ihre Daten nicht lokal verfügbar sind, dauert die Ausführung eines Werkzeugs bedeutend länger. Informationen zur Verwendung von ArcGIS GeoAnalytics Server für Analysen finden Sie unter GeoAnalytics Tools.
Syntax
arcpy.gapro.Forest(prediction_type, in_features, {output_trained_features}, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {features_to_predict}, {variable_of_importance}, {output_predicted}, {explanatory_variable_matching}, {number_of_trees}, {minimum_leaf_size}, {maximum_tree_depth}, {sample_size}, {random_variables}, {percentage_for_validation})
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. | Table View |
output_trained_features (optional) | Der Name des Ausgabe-Feature-Layers. | Table;Feature Class |
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 |
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. | Table View |
variable_of_importance (optional) | Tabelle mit Informationen, die die Bedeutung der einzelnen, im erstellten Modell verwendeten erklärenden Variablen beschreiben. | Table |
output_predicted (optional) | Die Ausgabe-Feature-Class zum Empfangen der Ergebnisse der Vorhersageergebnisse. | Table;Feature Class |
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 |
Codebeispiel
Das folgende Skript veranschaulicht die Verwendung des Werkzeugs Forest im Python-Fenster.
In diesem Skript wird die Forest-Methode auf Umsatzdaten aus dem Jahr 1980 angewendet und eine Umsatzvorhersage für 1981 getroffen.
#-------------------------------------------------------------------------------
# Name: Forest.py
# Description: Run Forest on sales data from 1980 and predict for sales in 1981
#
# Requirements: Advanced License
# Import system modules
import arcpy
arcpy.env.workspace = "c:/data/commercial.gdb"
# Set local variables
trainingDataset = "sales"
predictionDataset = "next_year"
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, None, None, 120, None, 10)
Umgebungen
Lizenzinformationen
- Basic: Nein
- Standard: Nein
- Advanced: Ja