Clasificación y regresión basadas en bosque (Geoanálisis)

Resumen

Crea modelos y genera predicciones mediante una adaptación del algoritmo de bosque aleatorio, un método de aprendizaje automático supervisado desarrollado por Leo Breiman y Adele Cutler. Es posible realizar predicciones para ambas variables de categorías (clasificación) y variables continuas (regresión). Las variables explicativas toman la forma de campos de la tabla de atributos de las entidades de entrenamiento. Además de la validación del rendimiento del modelo basándose en datos de entrenamiento, es posible realizar predicciones en las entidades.

Heredado:

La extensión de ArcGIS GeoAnalytics Server quedará obsoleta en ArcGIS Enterprise. La versión final de GeoAnalytics Server se incluyó con ArcGIS Enterprise 11.3. Esta herramienta de geoprocesamiento está disponible a través de ArcGIS Enterprise 11.3 y versiones anteriores.

Uso

  • Esta herramienta crea cientos de árboles, conocidos como un conjunto de árboles de decisiones, para crear un modelo que puede emplearse para la predicción. Cada árbol de decisión se crea mediante partes generadas aleatoriamente de los datos (de entrenamiento) originales. Cada árbol genera su propia predicción y vota sobre el resultado. El modelo de bosque considera los votos de todos los árboles de decisiones para predecir o clasificar el resultado de una muestra desconocida. Se trata de algo importante, ya que los árboles individuales pueden tener problemas de exceso de ajuste en un modelo; sin embargo, combinar varios árboles de un bosque para la predicción aborda el problema de exceso de ajuste asociado con un único árbol.

  • Esta herramienta puede usarse en dos modos de operación. El modo Entrenar se puede usar para evaluar el rendimiento de distintos modelos al explorar distintas variables explicativas y ajustes de la herramienta. Una vez encontrado un buen modelo, puede usar el modo Entrenar y predecir.

  • Esta herramienta no admite entradas con campos de solo fecha o solo hora.

  • Esta es una herramienta controlada por datos y funciona de forma óptima con datasets grandes. La herramienta debe entrenarse con al menos varios cientos de entidades para obtener unos resultados óptimos. No es una herramienta adecuada para datasets muy pequeños.

  • Las Entidades de entrenamiento de entrada pueden ser tablas o entidades de puntos, líneas o polígonos. Esta herramienta no funciona con datos multiparte.

  • Las entidades con uno o varios valores nulos o valores de cadena de caracteres vacíos en campos explicativos o de predicción se ejecutarán desde la salida. Puede modificar los valores mediante la herramienta Calcular campo si es necesario.

  • Esta herramienta produce una variedad de salidas en función de los siguientes modos de operación:

    • Entrenar produce las dos salidas siguientes:
      • Entidades entrenadas de salida: contiene todas las Entidades de entrenamiento de entrada que se usan en el modelo creado, así como todas las variables explicativas que se usan en el modelo. También contiene predicciones para todas las entidades usadas para entrenar el modelo, lo cual puede resultar útil para evaluar el rendimiento del modelo creado.
      • Mensajes de resumen de la herramienta: mensajes que ayudan a comprender el rendimiento del modelo creado. Los mensajes contienen información acerca de las características del modelo, importancia variable y diagnósticos de validación.
    • Entrenar y predecir produce las tres salidas siguientes:
      • Entidades entrenadas de salida: contiene todas las Entidades de entrenamiento de entrada que se usan en el modelo creado, así como todas las variables explicativas que se usan en el modelo. También contiene predicciones para todas las entidades usadas para entrenar el modelo, lo cual puede resultar útil para evaluar el rendimiento del modelo creado.
      • Entidades predichas de salida: una capa de los resultados predichos. Las predicciones se aplican a la capa para la que predecir (utilice la opción Entidades de predicción de entrada) con el modelo generado desde la capa de entrenamiento.
      • Mensajes de resumen de la herramienta: mensajes que ayudan a comprender el rendimiento del modelo creado. Los mensajes contienen información acerca de las características del modelo, importancia variable y diagnósticos de validación.

  • Puede usar el parámetro Crear tabla de importancia variable para crear una tabla para visualizar un gráfico de importancia variable para su evaluación. Los 20 valores de importancia variable principales también se reflejan en la ventana de mensajes.

  • Las variables explicativas pueden provenir de campos y deben contener una variedad de valores. Si la variable explicativa es de categorías, se debe activar la casilla de verificación De categorías (las variables del tipo de cadena de caracteres aparecerán activadas automáticamente). Las variables explicativas de categorías están limitadas a 60 valores únicos, aunque un número menor de categorías permite aumentar el rendimiento del modelo. Para un tamaño de datos dado, cuanto mayor sea el número de categorías contenidas en una variable, más probable es que esta domine el modelo y conduzca a resultados de predicción menos eficaces.

  • Al comparar variables explicativas, el Campo de entrenamiento y el Campo de predicción deben tener campos que sean del mismo tipo (un campo doble en Campo de entrenamiento debe corresponderse con un campo doble en Campo de predicción, por ejemplo).

  • Los modelos basados en bosque no realizan extrapolación: solo pueden clasificar o predecir un valor con el que se haya entrenado el modelo. Entrene el modelo con entidades de entrenamiento y variables explicativas que se encuentren dentro del rango de sus entidades y variables de destino. La herramienta generará un error si las variables explicativas de predicción contienen categorías que no están presentes en las entidades de entrenamiento.

  • El valor predeterminado del parámetro Número de árboles es de 100. El aumento del número de árboles del modelo de bosque dará lugar a una predicción de modelo más precisa, pero el modelo tardará más en calcularse.

  • Se admiten una única capa para entrenamiento y una única capa para predicción. Para combinar varios datasets en uno, use las herramientas Crear cuadrícula multivariable y Enriquecer con cuadrícula multivariable para generar datos de entrada.

  • Esta herramienta de geoprocesamiento se basa en ArcGIS GeoAnalytics Server. El análisis se completa en GeoAnalytics Server y los resultados se almacenan en su contenido en ArcGIS Enterprise.

  • Al ejecutar herramientas de GeoAnalytics Server, el análisis se completa en GeoAnalytics Server. Para obtener un rendimiento óptimo, haga que los datos estén disponibles para GeoAnalytics Server mediante capas de entidades alojadas en su portal de ArcGIS Enterprise o mediante recursos compartidos de archivos de big data. Los datos que no son locales para GeoAnalytics Server se moverán a GeoAnalytics Server antes de que comience el análisis. Significa que ejecutar una herramienta tardará más tiempo y, en algunos casos, mover los datos de ArcGIS Pro a GeoAnalytics Server podría fallar. El umbral de error depende de la velocidad de su red, así como del tamaño y complejidad de los datos. Se recomienda que siempre comparta sus datos o que cree un recurso compartido de archivos de big data.

    Más información acerca del uso compartido de datos en el portal

    Más información sobre cómo crear un archivo compartido de Big Data mediante Server Manager

Parámetros

EtiquetaExplicaciónTipo de datos
Tipo de predicción

Especifica el modo de funcionamiento de la herramienta. La herramienta puede ejecutarse para entrenar un modelo solo para evaluar rendimientos, predecir entidades o crear una superficie de predicción.

  • Solo entrenarSe entrenará un modelo, pero no se generará ninguna predicción. Utilice esta opción para evaluar la precisión de su modelo antes de generar las predicciones. Esta opción generará diagnósticos de modelo de salida en la ventana de mensajes y un gráfico de importancia variable. Esta es la configuración predeterminada
  • Entrenar y predecirSe generarán predicciones o clasificaciones para las entidades. Se deben proporcionar variables explicativas tanto para las entidades de entrenamiento como para las entidades que se desea predecir. La salida de esta opción será una clase de entidad, diagnósticos de modelo en la ventana de mensajes y una tabla opcional de importancia variable.
String
Entidades de entrenamiento de entrada

La capaque contiene el parámetro Variable para predecir y los campos de las variables explicativas de entrenamiento.

Record Set
Nombre de entidades de salida
(Opcional)

El nombre de la capa de entidades de salida.

String
Variable para predecir
(Opcional)

La variable del parámetro Entidades de entrenamiento de entrada que contiene los valores que se desean usar para entrenar el modelo. Este campo contiene valores (de entrenamiento) conocidos de la variable que se usará para predecir en ubicaciones desconocidas.

Field
Tratar variable como variable de categorías
(Opcional)

Especifica si Variable para predecir es una variable de categorías.

  • Activado: Variable para predecir es una variable de categorías y la herramienta realizará clasificación.
  • Desactivado: Variable para predecir es continua y la herramienta realizará regresión. Esta es la opción predeterminada.
Boolean
Variables explicativas
(Opcional)

Una lista de campos que representan a las variables explicativas que ayudan a predecir el valor o la categoría de Variable para predecir. Active la casilla de verificación De categorías en el caso de las variables que representen clases o categorías (tales como cobertura de suelo, presencia o ausencia).

Value Table
Crear tabla de importancia variable
(Opcional)

Especifica si la tabla de salida contendrá información que describa la importancia de cada variable explicativa utilizada en el modelo.

  • Activado: la tabla de salida contendrá información para cada variable explicativa.
  • Desactivado: la tabla de salida no contendrá información para cada variable explicativa. Esta es la opción predeterminada.
Boolean
Entidades de predicción de entrada
(Opcional)

Una capa de entidades que representa las ubicaciones en las que se realizarán predicciones. Esta capa de entidades también debe contener las variables explicativas proporcionadas como campos que se correspondan con las utilizadas de los datos de entrenamiento.

Record Set
Variables explicativas coincidentes
(Opcional)

Una lista de Variables explicativas especificadas de Entidades de entrenamiento de entrada de la derecha y sus campos correspondientes de Entidades de predicción de entrada de la izquierda.

Value Table
Número de árboles
(Opcional)

La cantidad de árboles que se crearán en el modelo de bosque. Un mayor número de árboles por lo general dará lugar a una predicción de modelo más precisa, pero el modelo tardará más en calcularse. El número predeterminado de árboles es de 100.

Long
Tamaño mínimo de hoja
(Opcional)

El número mínimo de observaciones requeridas para conservar una hoja (es decir, el nodo terminal de un árbol que no tiene más divisiones). El mínimo predeterminado para regresión es 5 y el mínimo predeterminado para clasificación es 1. En el caso de datos muy grandes, si aumenta estos números se reducirá el tiempo de ejecución de la herramienta.

Long
Profundidad máxima de árbol
(Opcional)

El número máximo de divisiones que se realizarán en un árbol. Si se utiliza una profundidad máxima grande, se podrán crear más divisiones, lo cual puede aumentar las probabilidades de exceso de ajuste en el modelo. El valor predeterminado se basa en datos y depende del número de árboles creados y el número de variables incluidas.

Long
Datos disponibles por árbol (%)
(Opcional)

El porcentaje de Entidades de entrenamiento de entrada utilizadas para cada árbol de decisión. El valor predeterminado es del 100 por cien de los datos. Las muestras de cada árbol se toman aleatoriamente a partir de dos tercios de los datos especificados.

Cada árbol de decisión del bosque se crea con una muestra o un subconjunto aleatorios (aproximadamente dos tercios) de los datos de entrenamiento disponibles. Si utiliza un porcentaje menor de los datos de entrada para cada árbol de decisión, se aumenta la velocidad de la herramienta si los datasets son muy grandes.

Long
Número de variables muestreadas aleatoriamente
(Opcional)

El número de variables explicativas utilizadas para crear cada árbol de decisión.

Cada árbol de decisión del bosque se crea con un subconjunto aleatorio de las variables explicativas especificadas. Al aumentar el número de variables utilizadas en cada árbol de decisión, aumentarán también las probabilidades de exceso de ajuste en el modelo, especialmente si existen una o varias variables dominantes. Una práctica habitual consiste en utilizar la raíz cuadrada del número total de variables explicativas si Variable para predecir es numérica, o bien en dividir el número total de variables explicativas entre 3 si Variable para predecir es de categorías.

Long
Datos de entrenamiento excluidos para la validación (%)
(Opcional)

El porcentaje (entre el 10 y el 50 por ciento) de las Entidades de entrenamiento de entrada que se deben reservar como el dataset de prueba para la validación. El modelo se entrenará sin este subconjunto aleatorio de datos, y los valores observados para esas entidades se compararán con los valores predichos. El valor predeterminado es del 10 por ciento.

Long
Data store
(Opcional)

Especifica el ArcGIS Data Store donde se almacenará la salida. Todos los resultados almacenados en un big data store espaciotemporal se almacenarán en WGS84. Los resultados almacenados en un data store relacional mantendrán su sistema de coordenadas.

  • Big data store espaciotemporalLa salida se almacenará en un big data store espaciotemporal. Esta es la opción predeterminada.
  • Data store relacionalLa salida se almacenará en un data store relacional.
String

Salida derivada

EtiquetaExplicaciónTipo de datos
Entidades de entrenamiento de salida

La salida que contiene las variables de entrada utilizadas para el entrenamiento, así como la variable observada para predecir el parámetro y las predicciones de acompañamiento que se pueden utilizar para evaluar con mayor profundidad el rendimiento del modelo.

Record Set
Tabla Variable de Importancia

Una tabla que contiene información que describe la importancia de cada variable explicativa que se va a utilizar en el modelo creado.

Record Set
Entidades predichas de salida

La capa que recibirá las predicciones del modelo.

Record Set

arcpy.geoanalytics.Forest(prediction_type, in_features, {output_trained_name}, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {create_variable_importance_table}, {features_to_predict}, {explanatory_variable_matching}, {number_of_trees}, {minimum_leaf_size}, {maximum_tree_depth}, {sample_size}, {random_variables}, {percentage_for_validation}, {data_store})
NombreExplicaciónTipo de datos
prediction_type

Especifica el modo de funcionamiento de la herramienta. La herramienta puede ejecutarse para entrenar un modelo solo para evaluar rendimientos, predecir entidades o crear una superficie de predicción.

  • TRAINSe entrenará un modelo, pero no se generará ninguna predicción. Utilice esta opción para evaluar la precisión de su modelo antes de generar las predicciones. Esta opción generará diagnósticos de modelo de salida en la ventana de mensajes y un gráfico de importancia variable. Esta es la configuración predeterminada
  • TRAIN_AND_PREDICTSe generarán predicciones o clasificaciones para las entidades. Se deben proporcionar variables explicativas tanto para las entidades de entrenamiento como para las entidades que se desea predecir. La salida de esta opción será una clase de entidad, diagnósticos de modelo en la ventana de mensajes y una tabla opcional de importancia variable.
String
in_features

La clase de entidad que contiene el parámetro variable_predict y los campos de las variables explicativas de entrenamiento.

Record Set
output_trained_name
(Opcional)

El nombre de la capa de entidades de salida.

String
variable_predict
(Opcional)

La variable del parámetro in_features que contiene los valores que se desean usar para entrenar el modelo. Este campo contiene valores (de entrenamiento) conocidos de la variable que se usará para predecir en ubicaciones desconocidas.

Field
treat_variable_as_categorical
(Opcional)
  • CATEGORICALvariable_predict es una variable de categorías y la herramienta realizará clasificación.
  • NUMERICvariable_predict es continua y la herramienta realizará regresión. Esta es la opción predeterminada.
Boolean
explanatory_variables
[[Variable, Categorical],...]
(Opcional)

Una lista de campos que representan a las variables explicativas que ayudan a predecir el valor o la categoría de variable_predict. Use el parámetro treat_variable_as_categorical en el caso de las variables que representen clases o categorías (tales como cobertura de suelo, presencia o ausencia). Especifique la variable como true para cualquiera que represente clases o categorías tales como cobertura de suelo, presencia o ausencia, y false si la variable es continua.

Value Table
create_variable_importance_table
(Opcional)

Especifica si la tabla de salida contendrá información que describa la importancia de cada variable explicativa utilizada en el modelo.

  • CREATE_TABLELa tabla de salida contendrá información para cada variable explicativa.
  • NO_TABLELa tabla de salida no contendrá información para cada variable explicativa. Esta es la opción predeterminada.
Boolean
features_to_predict
(Opcional)

Una capa de entidades que representa las ubicaciones en las que se realizarán predicciones. Esta capa de entidades también debe contener las variables explicativas proporcionadas como campos que se correspondan con las utilizadas de los datos de entrenamiento.

Record Set
explanatory_variable_matching
[[Prediction, Training],...]
(Opcional)

Una lista de explanatory_variables especificadas de in_features de la derecha y sus campos correspondientes de features_to_predict de la izquierda, por ejemplo, [["LandCover2000", "LandCover2010"], ["Income", "PerCapitaIncome"]].

Value Table
number_of_trees
(Opcional)

La cantidad de árboles que se crearán en el modelo de bosque. Un mayor número de árboles por lo general dará lugar a una predicción de modelo más precisa, pero el modelo tardará más en calcularse. El número predeterminado de árboles es de 100.

Long
minimum_leaf_size
(Opcional)

El número mínimo de observaciones requeridas para conservar una hoja (es decir, el nodo terminal de un árbol que no tiene más divisiones). El mínimo predeterminado para regresión es 5 y el mínimo predeterminado para clasificación es 1. En el caso de datos muy grandes, si aumenta estos números se reducirá el tiempo de ejecución de la herramienta.

Long
maximum_tree_depth
(Opcional)

El número máximo de divisiones que se realizarán en un árbol. Si se utiliza una profundidad máxima grande, se podrán crear más divisiones, lo cual puede aumentar las probabilidades de exceso de ajuste en el modelo. El valor predeterminado se basa en datos y depende del número de árboles creados y el número de variables incluidas.

Long
sample_size
(Opcional)

El porcentaje de in_features utilizadas para cada árbol de decisión. El valor predeterminado es del 100 por cien de los datos. Las muestras de cada árbol se toman aleatoriamente a partir de dos tercios de los datos especificados.

Cada árbol de decisión del bosque se crea con una muestra o un subconjunto aleatorios (aproximadamente dos tercios) de los datos de entrenamiento disponibles. Si utiliza un porcentaje menor de los datos de entrada para cada árbol de decisión, se aumenta la velocidad de la herramienta si los datasets son muy grandes.

Long
random_variables
(Opcional)

El número de variables explicativas utilizadas para crear cada árbol de decisión.

Cada árbol de decisión del bosque se crea con un subconjunto aleatorio de las variables explicativas especificadas. Al aumentar el número de variables utilizadas en cada árbol de decisión, aumentarán también las probabilidades de exceso de ajuste en el modelo, especialmente si existen una o varias variables dominantes. Una práctica habitual consiste en utilizar la raíz cuadrada del número total de variables explicativas si variable_predict es numérica, o bien en dividir el número total de variables explicativas entre 3 si variable_predict es de categorías.

Long
percentage_for_validation
(Opcional)

El porcentaje (entre el 10 y el 50 por ciento) de las in_features que se deben reservar como el dataset de prueba para la validación. El modelo se entrenará sin este subconjunto aleatorio de datos, y los valores observados para esas entidades se compararán con el valor predicho. El valor predeterminado es del 10 por ciento.

Long
data_store
(Opcional)

Especifica el ArcGIS Data Store donde se almacenará la salida. Todos los resultados almacenados en un big data store espaciotemporal se almacenarán en WGS84. Los resultados almacenados en un data store relacional mantendrán su sistema de coordenadas.

  • SPATIOTEMPORAL_DATA_STORELa salida se almacenará en un big data store espaciotemporal. Esta es la opción predeterminada.
  • RELATIONAL_DATA_STORELa salida se almacenará en un data store relacional.
String

Salida derivada

NombreExplicaciónTipo de datos
output_trained

La salida que contiene las variables de entrada utilizadas para el entrenamiento, así como la variable observada para predecir el parámetro y las predicciones de acompañamiento que se pueden utilizar para evaluar con mayor profundidad el rendimiento del modelo.

Record Set
variable_of_importance

Una tabla que contiene información que describe la importancia de cada variable explicativa que se va a utilizar en el modelo creado.

Record Set
output_predicted

La capa que recibirá las predicciones del modelo.

Record Set

Muestra de código

Ejemplo de Forest (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la herramienta ForestBasedClassificationAndRegression.

En este script, se describen las entidades de red y se crea una capa de muestra de 2.500 entidades.

#-------------------------------------------------------------------------------
# Name: Forest.py
# Description: Run Forest on sales data from 1980 and predict for sales in 1981
#
# Requirements: ArcGIS GeoAnalytics Server

# Import system modules
import arcpy
arcpy.env.workspace = "c:/data/commercial.gdb"
# Set local variables
trainingDataset = "https://analysis.org.com/server/rest/services/Hosted/sales/FeatureServer/0"
predictionDataset = "https://analysis.org.com/server/rest/services/Hosted/next_year/FeatureServer/0"
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, , , 120, , 10, "SPATIOTEMPORAL_DATA_STORE")

Entornos

Casos especiales

Sistema de coordenadas de salida

El sistema de coordenadas que se usará para el análisis. El análisis se completará en el sistema de coordenadas de entrada salvo que este parámetro especifique otra opción. En GeoAnalytics Tools, los resultados finales se almacenarán en el data store espaciotemporal en WGS84.

Información de licenciamiento

  • Basic: Requiere ArcGIS GeoAnalytics Server
  • Standard: Requiere ArcGIS GeoAnalytics Server
  • Advanced: Requiere ArcGIS GeoAnalytics Server

Temas relacionados