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

Darstellung der Dimensionsreduktion
Acht Variablen werden auf drei Komponenten reduziert.

Verwendung

  • Es müssen mindestens zwei numerische Felder im 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 in dieselbe Skalierung aufzunehmen, sodass 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 empfohlen 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.

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

Syntax

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})
ParameterErklärungDatentyp
in_table

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

Table View
output_data

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 werden soll.

  • 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 für jedes Analysefeld werden skaliert, um eine Varianz von 1 zu erzielen. Dies ist die Standardeinstellung.
  • NO_SCALE_DATADie Werte jedes Analysefeldes werden so verschoben, dass durchschnittlich 0 vorliegt, aber die Varianz 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 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 -Features 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 an die Ausgabe angehängt.
  • NO_APPENDNur die Analysefelder werden in die Ausgabe 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)

Gibt die Anzahl der Permutationen an, 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

Codebeispiel

DimensionReduction – Beispiel 1 (Python-Fenster)

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

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)
DimensionReduction – Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Python-Skript veranschaulicht die Verwendung des Werkzeugs 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)

Lizenzinformationen

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

Verwandte Themen