Clasificación y regresión basadas en bosque (GeoAnalytics Desktop)

Resumen

Crea modelos y genera predicciones mediante una adaptación del algoritmo de bosque aleatorio de Leo Breiman y Adele Cutler, que es un método de aprendizaje automático supervisado. 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.

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.

  • 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 Spark. El análisis se completa en su equipo de escritorio utilizando varios núcleos en paralelo. Consulte Consideraciones acerca de las herramientas de GeoAnalytics Desktop para obtener más información acerca de la ejecución de análisis.

  • Al ejecutar herramientas de GeoAnalytics Desktop, el análisis se completa en su equipo de escritorio. Para un rendimiento óptimo, los datos deben estar disponibles en su escritorio. Si utiliza una capa de entidades alojada, se recomienda utilizar ArcGIS GeoAnalytics Server. Si sus datos no están almacenados localmente, se tardará más tiempo en ejecutar una herramienta. Para utilizar su ArcGIS GeoAnalytics Server para realizar un análisis, consulte GeoAnalytics Tools.

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.

Table View
Entidades entrenadas de salida
(Opcional)

El nombre de la capa de entidades de salida.

Table;Feature Class
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
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.

Table View
Tabla Variable de Importancia
(Opcional)

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

Table
Entidades predichas de salida
(Opcional)

La clase de entidad de salida que recibirá los resultados de predicción.

Table;Feature Class
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

arcpy.geoanalytics.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})
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.

Table View
output_trained_features
(Opcional)

El nombre de la capa de entidades de salida.

Table;Feature Class
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 valor del 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
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.

Table View
variable_of_importance
(Opcional)

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

Table
output_predicted
(Opcional)

La clase de entidad de salida que recibirá los resultados de predicción.

Table;Feature Class
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

Muestra de código

Ejemplo de Forest (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la función Forest.

En este script, ejecute Bosque en datos de ventas de 1980 y prediga las ventas de 1981.

#-------------------------------------------------------------------------------
# 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"

# Run 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)