Resumen
Crea modelos y genera predicciones mediante una adaptación del algoritmo de bosque aleatorio de Leo Breiman, que es un método de aprendizaje de máquina 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.
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.
- Entrenar produce las dos salidas siguientes:
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 su 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 su 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. Por lo tanto, 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
Sintaxis
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})
Parámetro | Explicación | Tipo 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.
| 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) |
| 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 describe la importancia de cada variable explicativa utilizada en el modelo.
| 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 en el que se guardará la salida. La predeterminada es SPATIOTEMPORAL_DATA_STORE. 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.
| String |
Salida derivada
Nombre | Explicación | Tipo 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. | Conjunto de registros |
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. | Conjunto de registros |
output_predicted | Una capa que recibirá las predicciones del modelo. | Conjunto de registros |
Muestra de código
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
- 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. Para las 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