Forest-basierte Klassifizierung und Regression (GeoAnalytics Desktop)

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.

  • 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.

Parameter

BeschriftungErläuterungDatentyp
Vorhersagetyp

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.

  • Nur trainierenEin Modell wird trainiert, es werden jedoch keine Vorhersagen generiert. Prüfen Sie die Genauigkeit des Modells mit dieser Option, bevor Sie Vorhersagen generieren. Mit dieser Option werden Modelldiagnosen im Meldungsfenster und ein Diagramm der Variablenbedeutung ausgegeben. Hierbei handelt es sich um die Standardeinstellung.
  • Trainieren und vorhersagenEs werden Vorhersagen oder Klassifizierungen für Features generiert. Sowohl für die Trainings-Features als auch für die vorherzusagenden Features müssen erklärende Variablen angegeben werden. Die Ausgaben dieser Option sind eine Feature-Class, eine Modelldiagnose im Meldungsfenster und optional eine Tabelle der Variablenbedeutung.
String
Eingabe-Trainings-Features

Der Layer mit dem Parameter Vorherzusagende Variable und den erklärenden Feldern für Trainings-Variablen.

Table View
Trainierte Ausgabe-Features
(optional)

Der Name des Ausgabe-Feature-Layers.

Table;Feature Class
Vorherzusagende Variable
(optional)

Die Variable aus dem Parameter Eingabe-Trainings-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
Variable als kategorisch behandeln
(optional)

Gibt an, ob es sich bei Vorherzusagende Variable um eine Kategorievariable handelt.

  • Aktiviert: Vorherzusagende Variable ist eine Kategorievariable, es wird eine Klassifizierung vom Werkzeug vorgenommen.
  • Deaktiviert: Vorherzusagende Variable ist eine kontinuierliche Variable, es wird eine Regression vom Werkzeug ausgeführt. Dies ist die Standardeinstellung.
Boolean
Erklärende Variablen
(optional)

Eine Liste der Felder, die erklärende Variablen darstellen und die Vorhersage des Wertes oder der Kategorie von Vorherzusagende Variable unterstützen. Aktivieren Sie das Kontrollkästchen Kategorisch für alle Variablen, die Klassen oder Kategorien darstellen (z. B. Landbedeckung oder Anwesenheit oder Abwesenheit).

Value Table
Eingabe-Vorhersage-Features
(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
Tabelle der Variablenbedeutung
(optional)

Tabelle mit Informationen, die die Bedeutung der einzelnen, im erstellten Modell verwendeten erklärenden Variablen beschreiben.

Table
Vorhergesagte Ausgabe-Features
(optional)

Die Ausgabe-Feature-Class zum Empfangen der Ergebnisse der Vorhersageergebnisse.

Table;Feature Class
Erklärende Variablen abgleichen
(optional)

Eine Liste der angegebenen Werte für Erklärende Variablen aus den Eingabe-Trainings-Features rechts und den ihnen entsprechenden Feldern aus den Eingabe-Vorhersage-Features links.

Value Table
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 von Strukturen beträgt 100.

Long
Minimale Elementgröße
(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
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. Die Standardeinstellung ist datenabhängig und abhängig von der Anzahl der erstellten Strukturen und der berücksichtigten Variablen.

Long
Pro Struktur verfügbare Daten (%)
(optional)

Der Prozentsatz der für jede Entscheidungsstruktur verwendeten Eingabe-Trainings-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
Anzahl der nach dem Zufallsprinzip erfassten Variablen
(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 Vorherzusagende Variable numerisch ist, oder die Gesamtzahl der erklärenden Variablen durch 3 zu teilen, wenn Vorherzusagende Variable kategorisch ist.

Long
% der Trainingsdaten für die Validierung ausgeschlossen
(optional)

Der Prozentsatz (zwischen 10 und 50 Prozent) der Eingabe-Trainings-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 den vorhergesagten Werten verglichen. Der Standardwert ist 10 Prozent.

Long

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})
NameErläuterungDatentyp
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.

  • TRAINEin Modell wird trainiert, es werden jedoch keine Vorhersagen generiert. Prüfen Sie die Genauigkeit des Modells mit dieser Option, bevor Sie Vorhersagen generieren. Mit dieser Option werden Modelldiagnosen im Meldungsfenster und ein Diagramm der Variablenbedeutung ausgegeben. Hierbei handelt es sich um die Standardeinstellung.
  • TRAIN_AND_PREDICTEs werden Vorhersagen oder Klassifizierungen für Features generiert. Sowohl für die Trainings-Features als auch für die vorherzusagenden Features müssen erklärende Variablen angegeben werden. Die Ausgaben dieser Option sind eine Feature-Class, eine Modelldiagnose im Meldungsfenster und optional eine Tabelle der Variablenbedeutung.
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)
  • CATEGORICALvariable_predict ist eine Kategorievariable, es wird eine Klassifizierung vom Werkzeug vorgenommen.
  • NUMERICvariable_predict ist eine kontinuierliche Variable, es wird eine Regression vom Werkzeug ausgeführt. Dies ist die Standardeinstellung.
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

Forest-Beispiel (Python-Fenster)

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)

Lizenzinformationen

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

Verwandte Themen