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.
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 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 ArcGIS GeoAnalytics Server con el fin de realizar un análisis, consulte GeoAnalytics Tools.
Sintaxis
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})
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. | 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) |
| 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 |
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
El siguiente script de la ventana de Python muestra cómo utilizar la herramienta 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"
# 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, None, None, 120, None, 10)
Entornos
Información de licenciamiento
- Basic: No
- Standard: No
- Advanced: Sí