Resumen
Reduce el número de dimensiones de un conjunto de variables continuas agregando la mayor cantidad posible de varianza en menos componentes utilizando un Análisis de componentes principales (PCA) o un Análisis discriminante lineal (LDA) de rango reducido. Las variables se especifican como campos en una tabla o capa de entidades de entrada y los nuevos campos que representan las nuevas variables se guardan en la tabla o clase de entidad de salida. El número de campos nuevos será menor que el número de variables originales y mantendrá al mismo tiempo la cantidad de varianza más alta posible de todas las variables originales.
La herramienta Reducción de dimensión se utiliza normalmente para explorar relaciones multivariantes entre variables y para reducir el coste de cálculo de algoritmos de aprendizaje automático en los que la memoria requerida y el tiempo de procesamiento dependen del número de dimensiones de los datos. El uso de los componentes en lugar de los datos originales en análisis o algoritmos de aprendizaje automático puede proporcionar a menudo resultados comparables (o mejores) al tiempo que se consumen menos recursos de cálculo.
Ilustración
Uso
Se deben proporcionar al menos dos campos numéricos en el parámetro Campos de análisis porque los datos deben tener al menos dos dimensiones para reducir sus dimensiones.
El parámetro Método de reducción de dimensión presenta dos opciones:
- Análisis de componentes principales (PCA): este método crea secuencialmente componentes que capturan la mayor parte posible de la varianza total y las correlaciones entre las variables originales. El parámetro Escalar datos se puede utilizar para colocar cada variable original en la misma escala, de modo que cada variable tenga la misma importancia en los componentes principales. Si los datos no se escalan, las variables con valores más grandes representarán la mayor parte de la varianza total y estarán sobrerrepresentadas en los primeros componentes. Este método se recomienda cuando desea realizar un análisis o un método de aprendizaje automático en el que los componentes se utilizan para predecir el valor de una variable continua.
- Análisis discriminante lineal (LDA) de rango reducido: este método crea componentes que maximizan la separabilidad de las variables de análisis y los distintos niveles de una variable de categorías proporcionada en el parámetro Campo de categorías. Los componentes mantendrán la máxima varianza entre categorías posible para que los componentes resultantes sean más eficaces a la hora de clasificar cada registro en una de las categorías. Este método escala automáticamente los datos y se recomienda cuando desea realizar un análisis o un método de aprendizaje automático en el que los componentes se utilizan para clasificar la categoría de una variable de categorías.
Los mensajes de geoprocesamiento muestran el porcentaje y el porcentaje acumulado de varianza que mantiene cada componente.
El número de componentes que se crearán depende de si especifica valores para los parámetros Porcentaje mínimo de varianza a mantener y Número mínimo de componentes.
- Si se especifica un parámetro y el otro no, el valor del parámetro especificado determina el número de componentes. El número de componentes será igual al número más bajo necesario para satisfacer el mínimo especificado.
- Si se especifican ambos parámetros, se utiliza el mayor de los dos números de componentes resultantes.
- Si no se especifica ninguno de los parámetros, el número de componentes se determina utilizando varios métodos estadísticos y la herramienta utilizará el mayor número de componentes recomendado por cada uno de los métodos. En ambos métodos de reducción de dimensión, los métodos incluyen el método Broken-Stick y la prueba de esfericidad de Bartlett. En PCA, también se realiza una prueba de permutación si el valor del parámetro Número de permutaciones es mayor que cero.
La información sobre los resultados de cada prueba se muestra como mensajes de geoprocesamiento.
Si el parámetro Tabla de eigenvalores de salida crea una tabla, se crea un gráfico de sedimentación en la tabla de salida para visualizar la varianza que mantiene cada componente.
Si el parámetro Tabla de eigenvectores de salida crea una tabla, se crea un gráfico de barras en la tabla de salida para visualizar cada uno de los eigenvectores.
Para obtener más información sobre PCA y LDA de rango reducido, consulte la siguiente referencia:
- 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
Para obtener más información sobre los métodos para determinar el número de componentes, consulte la siguiente referencia:
- 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.
Sintaxis
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})
Parámetro | Explicación | Tipo de datos |
in_table | La tabla o entidades que contienen los campos con la dimensión que se reducirá. | Table View |
output_data | La tabla o clase de entidad de salida que contiene los componentes resultantes de la reducción de dimensión. | Table |
fields [fields,...] | Los campos que representan los datos con la dimensión que se reducirá. | Field |
method (Opcional) | Especifica el método que se utilizará para reducir las dimensiones de los campos de análisis.
| String |
scale (Opcional) | Especifica si los valores de cada análisis se escalarán para tener una varianza igual a uno. Este escalado garantiza que cada campo de análisis tenga la misma prioridad en los componentes. El escalado también elimina el efecto de las unidades lineales, donde, por ejemplo, los mismos datos medidos en metros y pies generarán componentes equivalentes. Los valores de los campos de análisis se desplazarán para que tengan un valor medio de cero para ambas opciones.
| Boolean |
categorical_field (Opcional) | El campo que representa la variable de categorías para LDA. Los componentes mantendrán la máxima cantidad de información necesaria para clasificar cada registro de entrada en estas categorías. | Field |
min_variance (Opcional) | El porcentaje mínimo de varianza total de los campos de análisis que se debe mantener en los componentes. La varianza total depende de si los campos de análisis se escalaron con el parámetro Escalar datos. | Long |
min_components (Opcional) | El número mínimo de componentes. | Long |
append_fields (Opcional) | Especifica si todos los campos de la tabla o entidades de entrada se copiarán e incorporarán a la tabla o entidades de salida. Los campos proporcionados en el parámetro fields se copiarán en la salida independientemente del valor de este parámetro.
| Boolean |
output_eigenvalues_table (Opcional) | La tabla de salida que contiene los eigenvalores de cada componente. | Table |
output_eigenvectors_table (Opcional) | La tabla de salida que contiene los eigenvectores de cada componente. | Table |
number_of_permutations (Opcional) | Especifica el número de permutaciones que se utilizarán para determinar el número óptimo de componentes. El valor predeterminado es 0, lo que indica que no se realizará ninguna prueba de permutación. El valor proporcionado debe ser igual a 0, 99, 199, 499 o 999. Si se proporciona cualquier otro valor, se utilizará 0 y no se realizará ninguna prueba de permutación. | Long |
Muestra de código
En el siguiente script de Python se muestra cómo utilizar la herramienta 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)
El siguiente script de Python independiente muestra cómo utilizar la herramienta DimensionReduction para predecir la población:
# 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)
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí