Dimensionsreduktion (Spatial Statistics)

Zusammenfassung

Reduziert die Anzahl der Dimensionen eines Satzes an kontinuierlichen Variablen durch die Aggregation der größtmöglichen Varianz in weniger Komponenten. Dazu wird die Hauptkomponentenanalyse (Principal Component Analysis, PCA) oder die lineare Diskriminanzanalyse mit reduziertem Rang (Reduced-Rank Linear Discriminant Analysis, LDA) verwendet.

Die Variablen werden als Felder in einer Eingabetabelle oder einem Feature-Layer angegeben. Neue Felder, die neue Variablen darstellen, werden in der Ausgabetabelle oder Feature-Class gespeichert. Die Anzahl neuer Felder ist geringer als die Anzahl der ursprünglichen Variablen, wobei die größtmögliche Varianz der ursprünglichen Variablen beibehalten wird. Die Dimensionsreduktion wird allgemein verwendet, um multivariate Beziehungen zwischen Variablen zu ermitteln und um die Datenverarbeitungskosten für die Algorithmen bei maschinellem Lernen zu reduzieren, da dort der erforderliche Speicher und die Verarbeitungszeit von der Anzahl der Dimensionen der Daten abhängen. Das Verwenden der Komponenten anstelle der ursprünglichen Daten in Analysen oder Algorithmen bei maschinellem Lernen kann häufig vergleichbare (oder bessere) Ergebnisse liefern, da weniger Ressourcen der Datenverarbeitung verwendet werden.

Weitere Informationen zur Funktionsweise des Werkzeugs "Dimensionsreduktion"

Abbildung

Abbildung zum Werkzeug "Dimensionsreduktion"
Acht Variablen werden auf drei Komponenten reduziert.

Verwendung

  • Es müssen mindestens zwei numerische Felder für den Parameter Analysefelder angegeben werden, da die Daten mindestens zwei Dimensionen aufweisen müssen, damit die Dimensionen reduziert werden können.

  • Es gibt zwei Optionen für den Parameter Methode für Dimensionsreduktion:

    • Hauptkomponentenanalyse (Principal Component Analysis, PCA): Bei dieser Methode werden sequenziell Komponenten erstellt, die jeweils möglichst viel von der Gesamtvarianz und den Korrelationen zwischen den ursprünglichen Variablen übernehmen. Der Parameter Daten skalieren kann verwendet werden, um jede ursprüngliche Variable so zu skalieren, dass jede Variable die gleiche Gewichtung in der Hauptkomponentenanalyse erhält. Wenn die Daten nicht skaliert werden, sind die Variablen mit größeren Werten fast für die gesamte Varianz verantwortlich und sind in den ersten Komponenten überrepräsentiert. Diese Methode wird empfohlen, wenn Sie vorhaben, eine Analyse oder Methode für maschinelles Lernen durchzuführen, bei der die Komponenten verwendet werden, um den Wert einer kontinuierlichen Variable vorherzusagen.
    • Lineare Diskriminanzanalyse mit reduziertem Rang (Reduced-Rank Linear Discriminant Analysis, LDA): Bei dieser Methode werden Komponenten erstellt, die die Trennbarkeit der Analysevariablen und der verschiedenen Stufen einer kategorischen Variable maximieren, die im Parameter Kategorisches Feld angegeben werden. Die Komponenten behalten soviel Varianz zwischen den Kategorien wie möglich, sodass die resultierenden Komponenten sehr effektiv bei der Klassifizierung jedes Datensatzes in eine der Kategorien sind. Bei dieser Methode werden die Daten automatisch skaliert. Sie wird empfohlen, wenn Sie vorhaben, eine Analyse oder Methode für maschinelles Lernen durchzuführen, bei der die Komponenten verwendet werden, um die Kategorie einer kategorischen Variable zu klassifizieren.

  • Die Geoverarbeitungsmeldungen zeigen den Prozentwert und den kumulativen Prozentwert der Varianz, die in jeder Komponente beibehalten wird.

  • Die Anzahl der Komponenten, die erstellt werden, hängt davon ab, ob Sie Werte für die Parameter Minimaler Prozentwert der beizubehaltenden Varianz und Mindestanzahl der Komponenten angeben.

    • Wenn nur ein Parameter angegeben wird, bestimmt der Wert des angegebenen Parameters die Anzahl der Komponenten. Die Anzahl der Komponenten entspricht der kleinsten Anzahl, die zur Erfüllung des angegebenen Minimums erforderlich ist.
    • Wenn beide Parameter angegeben werden, wird der größere der zwei resultierenden Werte der Komponentenanzahl verwendet.
    • Wenn kein Parameter angegeben wird, wird die Anzahl der Komponenten mithilfe von statistischen Methoden bestimmt und das Tool verwendet die größte Anzahl an Komponenten, die von den jeweiligen Methoden geschätzt werden. Bei beiden Methoden zur Dimensionsreduktion umfassen die Methoden die Broken-Stick-Methode und Bartlett-Test auf Sphärizität. Bei der PCA wird auch ein Permutationstest durchgeführt, wenn der Parameterwert Anzahl der Permutationen größer als null ist.

    Information zu den Ergebnissen der einzelnen Tests werden als Geoverarbeitungsmeldungen angezeigt.

  • Wenn eine Tabelle mit dem Parameter Ausgabe-Eigenwert-Tabelle erstellt wird, wird ein Scree-Plot-Diagramm in der Ausgabetabelle erstellt, um die Varianz darzustellen, die von jeder Komponente beibehalten wird.

  • Wenn eine Tabelle mit dem Parameter Ausgabe-Eigenvektor-Tabelle erstellt wird, wird ein Balkendiagramm in der Ausgabetabelle erstellt, um die jeweiligen Eigenvektoren darzustellen.

  • Sie können die Komponentenfelder an die Eingabetabelle anhängen, indem Sie den Parameter Felder an Eingabedaten anhängen verwenden. Wenn Sie die Komponentenfelder anhängen, wird keine zugehörige Tabelle bereitgestellt.

  • Die Anzahl der Komponenten darf nicht größer sein als die Anzahl der Datensätze in der Eingabe. Außerdem werden Datensätze, die in einem der Analysefelder NULL-Werte aufweisen, aus der Berechnung ausgeschlossen. Wenn viele Datensätze NULL-Werte aufweisen, kann die im Parameter Mindestanzahl der Komponenten angegebene Anzahl von Komponenten nicht erstellt werden, und das Werkzeug schlägt fehl. Entfernen Sie in diesem Fall die Analysefelder, die viele NULL-Werte enthalten, oder füllen Sie mit dem Werkzeug Fehlende Werte ausfüllen fehlende Werte aus.

  • Weitere Informationen über PCA und Reduced-Rank LDA finden Sie in den folgenden Quellen:

    • James, G., Witten, D., Hastie, T., Tibshirani, R. (2014). "An Introduction to Statistical Learning: with Applications in R." Springer Publishing Company, Incorporated. https://doi.org/10.1007/978-1-4614-7138-7

    Weitere Informationen über die Methoden für das Festlegen der Anzahl der Komponenten finden Sie in den folgenden Quellen:

    • Peres-Neto, P., Jackson, D., Somers, K. (2005). "How many principal components? Stopping rules for determining the number of non-trivial axes revisited." Computational Statistics & Data Analysis. 49.4: 974-997. https://doi.org/10.1016/j.csda.2004.06.015.

Parameter

BeschriftungErläuterungDatentyp
Eingabetabelle oder -Features

Die Tabelle oder Features, die die Felder mit den Dimensionen enthalten, die reduziert werden.

Table View
Ausgabetabelle oder -Feature-Class
(optional)

Die Ausgabetabelle oder -Feature-Class, die die resultierenden Komponenten der Dimensionsreduktion enthält.

Table
Analysefelder

Die Felder, die die Daten mit der Dimension enthalten, die reduziert werden.

Field
Methode für Dimensionsreduktion
(optional)

Gibt die Methode an, die für die Reduktion der Dimensionen der Analysefelder verwendet wird.

  • Hauptkomponentenanalyse (PCA)Die Analysefelder werden in Komponenten partitioniert, die jeweils den maximalen Anteil der Gesamtvarianz beibehalten. Dies ist die Standardeinstellung.
  • Lineare Diskriminanzanalyse mit reduziertem Rang (LDA)Die Analysefelder werden in Komponenten partitioniert, die jeweils die maximale Trennbarkeit zwischen den Kategorien einer kategorischen Variablen beibehalten.
String
Daten skalieren
(optional)

Gibt an, ob die Werte jeder Analyse so skaliert werden, dass eine Varianz von 1 vorliegt. Diese Skalierung stellt sicher, dass jedes Analysefeld die gleiche Priorität in den Komponenten erhält. Die Skalierung entfernt auch den Effekt von linearen Einheiten. Beispiel: Dieselben Daten, die in Meter und Fuß gemessen werden, resultieren in äquivalenten Komponenten. Die Werte der Analysefelder werden so verschoben, dass durchschnittlich 0 für beide Optionen vorliegt.

  • Aktiviert: Die Werte der einzelnen Analysefelder werden auf eine Varianz gleich eins skaliert, indem jeder Wert durch die Standardabweichung des Analysefeldes geteilt wird. Dies ist die Standardeinstellung.
  • Nicht aktiviert: Die Varianz jedes Analysefeldes wird nicht skaliert.

Boolean
Kategorisches Feld
(optional)

Das Feld, das die kategorische Variable für LDA darstellt. Die Komponenten behalten die maximale Informationsmenge, die benötigt wird, um jeden Eingabedatensatz in diesen Kategorien zu klassifizieren.

Field
Minimaler Prozentwert der beizubehaltenden Varianz
(optional)

Der minimale Prozentwert der Gesamtvarianz der Analysefelder, die in den Komponenten beibehalten werden muss. Die Gesamtvarianz hängt davon ab, ob die Analysefelder mithilfe des Parameters Daten skalieren (scale in Python) skaliert wurden.

Long
Mindestanzahl der Komponenten
(optional)

Die Mindestanzahl der Komponenten.

Long
Alle Felder in Ausgabe-Dataset kopieren
(optional)

Gibt an, ob alle Felder der Eingabetabelle oder -Features kopiert und an die Ausgabetabelle oder -Feature-Class angehängt werden. Alle Felder, die im Parameter Analysefelder angegeben werden, werden in die Ausgabe kopiert, unabhängig vom Wert dieses Parameters.

  • Aktiviert: Alle Felder der Eingabetabelle oder -Features werden kopiert und an die Ausgabetabelle oder -Feature-Class angehängt.
  • Deaktiviert: Nur die Analysefelder werden in die Ausgabetabelle oder -Feature-Class einbezogen. Dies ist die Standardeinstellung.

Boolean
Ausgabe-Eigenwert-Tabelle
(optional)

Die Ausgabetabelle, die die Eigenwerte jeder Komponente enthält.

Table
Ausgabe-Eigenvektor-Tabelle
(optional)

Die Ausgabetabelle, die die Eigenvektoren jeder Komponente enthält.

Table
Anzahl der Permutationen
(optional)

Die Anzahl der Permutationen, die verwendet werden sollen, wenn die optimale Anzahl der Komponenten bestimmt wird. Der Standardwert beträgt 0 und zeigt an, dass kein Permutationstest durchgeführt wird.

Long
Felder an Eingabedaten anhängen
(optional)

Gibt an, ob die Komponentenfelder an das Eingabe-Dataset angehängt oder in einer Ausgabetabelle oder -Feature-Class gespeichert werden. Wenn Sie die Felder an die Eingabe anhängen, wird die Umgebung des Ausgabekoordinatensystems ignoriert.

  • Aktiviert: Die Felder, die die Komponenten enthalten, werden an die Eingabe-Features angehängt. Mit dieser Option werden die Eingabedaten geändert.
  • Deaktiviert: Eine Ausgabetabelle oder -Feature-Class, welche die Komponentenfelder enthält, wird erstellt. Dies ist die Standardeinstellung.

Boolean

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisierte Tabelle oder Feature-Class

Die aktualisierte Eingabetabelle oder -Feature-Class mit den angehängten Komponentenfeldern.

Table View

arcpy.stats.DimensionReduction(in_table, {output_data}, fields, {method}, {scale}, {categorical_field}, {min_variance}, {min_components}, {append_fields}, {output_eigenvalues_table}, {output_eigenvectors_table}, {number_of_permutations}, {append_to_input})
NameErläuterungDatentyp
in_table

Die Tabelle oder Features, die die Felder mit den Dimensionen enthalten, die reduziert werden.

Table View
output_data
(optional)

Die Ausgabetabelle oder -Feature-Class, die die resultierenden Komponenten der Dimensionsreduktion enthält.

Table
fields
[fields,...]

Die Felder, die die Daten mit der Dimension enthalten, die reduziert werden.

Field
method
(optional)

Gibt die Methode an, die für die Reduktion der Dimensionen der Analysefelder verwendet wird.

  • PCADie Analysefelder werden in Komponenten partitioniert, die jeweils den maximalen Anteil der Gesamtvarianz beibehalten. Dies ist die Standardeinstellung.
  • LDADie Analysefelder werden in Komponenten partitioniert, die jeweils die maximale Trennbarkeit zwischen den Kategorien einer kategorischen Variablen beibehalten.
String
scale
(optional)

Gibt an, ob die Werte jeder Analyse so skaliert werden, dass eine Varianz von 1 vorliegt. Diese Skalierung stellt sicher, dass jedes Analysefeld die gleiche Priorität in den Komponenten erhält. Die Skalierung entfernt auch den Effekt von linearen Einheiten. Beispiel: Dieselben Daten, die in Meter und Fuß gemessen werden, resultieren in äquivalenten Komponenten. Die Werte der Analysefelder werden so verschoben, dass durchschnittlich 0 für beide Optionen vorliegt.

  • SCALE_DATADie Werte der einzelnen Analysefelder werden auf die Varianz eins skaliert, indem jeder Wert durch die Standardabweichung des Analysefeldes geteilt wird. Dies ist die Standardeinstellung.
  • NO_SCALE_DATADie Varianz jedes Analysefeldes wird nicht skaliert.
Boolean
categorical_field
(optional)

Das Feld, das die kategorische Variable für LDA darstellt. Die Komponenten behalten die maximale Informationsmenge, die benötigt wird, um jeden Eingabedatensatz in diesen Kategorien zu klassifizieren.

Field
min_variance
(optional)

Der minimale Prozentwert der Gesamtvarianz der Analysefelder, die in den Komponenten beibehalten werden muss. Die Gesamtvarianz hängt davon ab, ob die Analysefelder mithilfe des Parameters Daten skalieren (scale in Python) skaliert wurden.

Long
min_components
(optional)

Die Mindestanzahl der Komponenten.

Long
append_fields
(optional)

Gibt an, ob alle Felder der Eingabetabelle oder -Features kopiert und an die Ausgabetabelle oder -Feature-Class angehängt werden. Die Felder, die im Parameter fields angegeben werden, werden in die Ausgabe kopiert, unabhängig vom Wert dieses Parameters.

  • APPENDAlle Felder der Eingabetabelle oder -Features werden kopiert und an die Ausgabetabelle oder -Feature-Class angehängt.
  • NO_APPENDNur die Analysefelder werden in die Ausgabetabelle oder -Feature-Class einbezogen. Dies ist die Standardeinstellung.
Boolean
output_eigenvalues_table
(optional)

Die Ausgabetabelle, die die Eigenwerte jeder Komponente enthält.

Table
output_eigenvectors_table
(optional)

Die Ausgabetabelle, die die Eigenvektoren jeder Komponente enthält.

Table
number_of_permutations
(optional)

Die Anzahl der Permutationen, die verwendet werden sollen, wenn die optimale Anzahl der Komponenten bestimmt wird. Der Standardwert beträgt 0 und zeigt an, dass kein Permutationstest durchgeführt wird. Der angegebene Wert muss 0, 99, 199, 499 oder 999 entsprechen. Wird ein anderer Wert angegeben, wird 0 verwendet, und es wird kein Permutationstest durchgeführt.

Long
append_to_input
(optional)

Gibt an, ob die Komponentenfelder an das Eingabe-Dataset angehängt oder in einer Ausgabetabelle oder -Feature-Class gespeichert werden. Wenn Sie die Felder an die Eingabe anhängen, wird die Umgebung des Ausgabekoordinatensystems ignoriert.

  • APPEND_TO_INPUTDie Felder, die die Komponenten enthalten, werden an die Eingabe-Features angehängt. Mit dieser Option werden die Eingabedaten geändert.
  • NEW_OUTPUTEine Ausgabe-Tabelle oder -Feature-Class, die die Komponentenfelder enthält, wird erstellt. Dies ist die Standardeinstellung.
Boolean

Abgeleitete Ausgabe

NameErläuterungDatentyp
updated_table

Die aktualisierte Eingabetabelle oder -Feature-Class mit den angehängten Komponentenfeldern.

Table View

Codebeispiel

DimensionReduction – Beispiel 1 (Python-Fenster)

Das folgende Python-Skript veranschaulicht, wie die Funktion DimensionReduction verwendet wird.


import arcpy
arcpy.stats.DimensionReduction("DemographicData", 
           "DemographicData_DimensionReduction", 
           "age_group_1;age_group2;age_group_3;age_group_4;age_group_5", 
           "PCA", "NO_SCALE_DATA", None, None, 3, 
           "NO_APPEND", "EigenValueTable", None, 99, NEW_OUTPUT)
DimensionReduction – Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Python-Skript veranschaulicht die Verwendung der Funktion DimensionReduction zur Vorhersage einer Population:


# Import system modules 
import arcpy

# Overwrite existing output, by default
arcpy.env.overwriteOutput = True

# Local variables...
arcpy.env.workspace = r"c:\projects\dimensionreduction.gdb"

# Reduce the fields of population by age group using Reduced-Rank LDA method; 
# use "State" as the categorical field; choose the eigenvector output. 
arcpy.stats.DimensionReduction("DemographicData", 
           "DemographicData_DimensionReduction", 
           "age_group_1;age_group2;age_group_3;age_group_4;age_group_5", 
           "LDA", "SCALE_DATA", "State", None, None, 
           "APPEND", None, "EigenVectorTable", 0, NEW_OUTPUT)