Clasificación y regresión basadas en bosque (Estadística espacial)

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 pueden adoptar la forma de campos en la tabla de atributos de las entidades de entrenamiento, los datasets ráster y las entidades de distancia utilizadas para calcular valores de proximidad para su uso como variables adicionales. Además de la validación del rendimiento del modelo basándose en datos de entrenamiento, es posible realizar predicciones en las entidades o en un ráster de predicción.

Más información sobre cómo funciona Clasificación y regresión basadas en bosque

Ilustración

Diagrama de modelo de bosque aleatorio

Uso

  • Esta herramienta crear 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 tres modos de operación diferentes. La opción 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 la opción Predecir a entidades o Predecir a ráster. 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 puntos o polígonos. Esta herramienta no funciona con datos multiparte.

  • Para usar rásteres como variables explicativas o para predecir a una Superficie de predicción de salida se requiere una licencia de Spatial Analyst.

  • Esta herramienta produce una variedad de salidas diferentes. Entidades entrenadas de salida contendrá todas las Entidades de entrenamiento de entrada usadas en el modelo creado, así como todas las variables explicativas utilizadas en el modelo (incluidos los campos de entrada usados, las distancias calculadas y cualquier valor de ráster extraído o calculado). También contendrá predicciones para todas las entidades usadas para entrenar el modelo, lo cual puede resultar útil para evaluar el rendimiento del modelo creado. Cuando se usa esta herramienta para la predicción, producirá una nueva clase de entidad que contiene las Entidades predichas de salida o una nueva Superficie de predicción de salida si se proporcionan rásteres explicativos.

  • Cuando se usa la opción Predecir a entidades, se crea una nueva clase de entidad que contiene las Entidades predichas de salida. Cuando se usa la opción Predecir a ráster, se crea una nueva Superficie de predicción de salida.

  • Esta herramienta también crea mensajes y gráficos para ayudarle a comprender el rendimiento del modelo creado. Puede acceder a los mensajes desplazándose sobre la barra de progreso, haciendo clic en el botón emergente o expandiendo la sección de mensajes en el panel Geoprocesamiento. También puede acceder a los mensajes de una ejecución anterior de la herramienta Clasificación y predicción basadas en bosquea través del Historial de geoprocesamiento. Los mensajes contienen información acerca de las características del modelo, errores fuera de bolsa, importancia variable y diagnósticos de validación.

    Puede usar el parámetro Tabla de importancia variable de salida 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. Se puede acceder al gráfico directamente bajo la capa en el panel Contenido.

  • Las variables explicativas pueden provenir de campos, calcularse a partir de entidades de distancia o extraerse de rásteres. Es posible usar cualquier combinación de estos tipos de variables explicativas, pero se requiere al menos un tipo. Las variables explicativas (a partir de campos, entidades de distancia o rásteres) empleadas 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.

  • Se usan entidades de distancia para crear automáticamente variables explicativas que representan una distancia desde las entidades proporcionadas a las Entidades de entrenamiento de entrada. Las distancias se calculan desde cada una de las Entidades de distancia de entrenamiento explicativas de entrada hasta la Entidad de entrenamiento de entrada más cercana. Si las Entidades de distancia de entrenamiento explicativas de entrada son polígonos o líneas, los atributos de distancia se calculan como la distancia entre los segmentos más cercanos del par de entidades. Sin embargo, las distancias se calculan de forma diferente para los polígonos y las líneas. Consulte Cómo calculan la distancia las herramientas de proximidad para obtener más detalles.

  • Si sus Entidades de entrenamiento de entrada son puntos y está utilizando Rásteres de entrenamiento explicativos, la herramienta profundiza para extraer variables explicativas de cada ubicación de punto. En el caso de los rásteres multibanda, solo se usa la primera banda.

  • Aunque puede tener varias capas con el mismo nombre en el panel Contenido, la herramienta no puede aceptar capas explicativas con el mismo nombre ni eliminar nombres de capas duplicados en las listas desplegables. Para evitar este problema, asegúrese de que todas las capas tienen nombres únicos.

  • Si sus Entidades de entrenamiento de entrada son polígonos, la Variable para predecir es de categorías y está usando exclusivamente Rásteres de entrenamiento explicativos, existe una opción para Convertir polígonos a resolución de ráster para entrenamiento. Si esta opción está activada, el polígono se divide en puntos en el centroide de cada celda ráster cuyo centroide quede dentro del polígono. A continuación, se extraen los valores de ráster de cada ubicación de punto, que se utilizan para entrenar el modelo. En el caso de las variables numéricas se utiliza un método de muestreo bilineal, mientras que en las variables de categorías se usa el método de mayor cercanía. El tamaño de celda predeterminado de los polígonos convertidos será el tamaño de celda máximo de los rásteres de entrada. Sin embargo, se puede cambiar usando el ajuste de entorno Tamaño de celda. Si no está activado, se usará un valor de ráster para cada polígono del modelo. Se asigna a cada polígono el valor medio en el caso de los rásteres continuos y la mayoría en el caso de los rásteres de categorías.

    Los polígonos se convierten a la resolución de ráster (izquierda) o se les asigna un valor medio (derecha).
    Los polígonos se convierten a la resolución de ráster (izquierda) o se les asigna un valor medio (derecha)

  • Debe existir variación en los datos empleados para cada variable explicativa especificada. Si recibe el error de que no existe variación en uno de los campos o rásteres especificados, puede probar a ejecutar de nuevo la herramienta, marcando esa variable como de categorías. Si el 95 por ciento de las entidades tienen el mismo valor para una variable determinada, esa variable se marca como carente de variación.

  • El parámetro Compensar categorías dispersas se puede usar si la variación en sus categorías no está equilibrada. Por ejemplo, si algunas categorías se producen cientos de veces en su dataset y otras pocas se producen muchas menos veces, al activar este parámetro garantizará que cada categoría se represente en cada árbol para crear modelos equilibrados.

  • Al comparar variables explicativas, los campos Prediction y Training deben ser del mismo tipo (un campo doble en Training debe corresponderse con un campo doble en Prediction).

  • Los modelos basados en bosque no realizan extrapolación: solo pueden clasificar o predecir un valor con el que se haya entrenado el modelo. Al predecir un valor basado en variables explicativas mucho mayores o menores que el rango del dataset de entrenamiento original, el modelo estima que el valor estará alrededor del valor más alto o más bajo del dataset original. Esta herramienta podría presentar un rendimiento deficiente si se intenta predecir con variables explicativas que están fuera del rango de las variables explicativas empleadas para entrenar el modelo.

  • 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.

  • Para usar datasets de mosaico como variables explicativas, utilice primero la herramienta Crear capa de mosaico y copie la ruta completa a la capa en la herramienta o utilice las herramientas Crear capa de mosaico y Crear capa ráster para ajustar la plantilla de procesamiento para el dataset de mosaico.

  • 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.

  • Si el parámetro Calcular incertidumbre está activado, la herramienta calculará un intervalo de predicción del 90 por ciento sobre cada valor predicho de la Variable para predecir. Si el Tipo de predicción es Solo entrenar o Predecir a entidades, se agregan dos campos a Entidades entrenadas de salida o Entidades predichas de salida. Estos campos, que terminan con _P05 y _P95, representan los límites superiores e inferiores del intervalo de predicción. Para cualquier observación nueva, puede predecir con una confianza del 90 por ciento que el valor de una observación nueva estará dentro del intervalo, dadas las mismas variables explicativas. Si se utiliza la opción Predecir a ráster, se agregan al panel Contenido dos rásteres adicionales que representan los límites superior e inferior del intervalo de predicción.

  • Esta herramienta admite el procesamiento en paralelo para la predicción y utiliza el 50 por ciento de los procesadores disponibles de forma predeterminada. El número de procesadores puede aumentar o disminuir usando el entorno Factor de procesamiento en paralelo.

  • Para más información sobre cómo funciona esta herramienta y para comprender los mensajes y gráficos de salida, consulte Cómo funciona Clasificación y regresión basadas en bosque.

    Referencias:

    Breiman, Leo. Out-Of-Bag Estimation. 1996.

    Breiman, L. (1996). Bagging predictors. Machine learning, 24(2), 123-140.

    Breiman, Leo. "Random Forests". Machine Learning. 45 (1): 5-32. doi:10.1023/A:1010933404324. 2001.

    Breiman, L., J.H. Friedman, R.A. Olshen, C.J. Stone. Classification and regression trees. Nueva York: Routledge. Capítulo 4. 2017.

    Dietterich, T. G. (2000, junio). Ensemble methods in machine learning. In International workshop on multiple classifier systems (pp. 1-15). Springer, Berlín, Heidelberg.

    Gini, C. (1912). Variabilità e mutabilità. Reprinted in Memorie di metodologica statistica (Ed. Pizetti E, Salvemini, T). Rome: Libreria Eredi Virgilio Veschi.

    Grömping, U. (2009). Variable importance assessment in regression: linear regression versus random forest. The American Statistician, 63(4), 308-319.

    Ho, T. K. (1995, agosto). Random decision forests. In Document analysis and recognition, 1995., proceedings of the third international conference on Document Analysis and Recognition. (Vol. 1, pp. 278-282). IEEE.

    James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An introduction to statistical learning (Vol. 112). New York: springer.

    LeBlanc, M., & Tibshirani, R. (1996). Combining estimates in regression and classification. Journal of the American Statistical Association, 91(436), 1641-1650.

    Loh, W. Y., & Shih, Y. S. (1997). Split selection methods for classification trees. Statistica sinica, 815-840.

    Meinshausen, Nicolai. "Quantile regression forests". Journal of Machine Learning Research 7. Junio (2006): 983-999.

    Nadeau, C., & Bengio, Y. (2000). Inference for the generalization error. In Advances in neural information processing systems (pp. 307-313).

    Strobl, C., Boulesteix, A. L., Kneib, T., Augustin, T., & Zeileis, A. (2008). Conditional variable importance for random forests. BMC bioinformatics, 9(1), 307.

    Zhou, Z. H. (2012). Ensemble methods: foundations and algorithms. CRC press.

Sintaxis

arcpy.stats.Forest(prediction_type, in_features, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {distance_features}, {explanatory_rasters}, {features_to_predict}, {output_features}, {output_raster}, {explanatory_variable_matching}, {explanatory_distance_matching}, {explanatory_rasters_matching}, {output_trained_features}, {output_importance_table}, {use_raster_values}, {number_of_trees}, {minimum_leaf_size}, {maximum_depth}, {sample_size}, {random_variables}, {percentage_for_training}, {output_classification_table}, {output_validation_table}, {compensate_sparse_categories}, {number_validation_runs}, {calculate_uncertainty})
ParámetroExplicació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
  • PREDICT_FEATURESSe 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 y un gráfico opcionales de importancia variable.
  • PREDICT_RASTERSe generará un ráster de predicción para el área en la que se intersecan los rásteres explicativos. Se deben proporcionar rásteres explicativos tanto para el área de entrenamiento como el área que se desea predecir. La salida de esta opción será una superficie de predicción, diagnósticos de modelo en la ventana de mensajes y una tabla y un gráfico opcionales de importancia variable.
String
in_features

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

Feature Layer
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)
  • CATEGORICALLa variable_predict es una variable de categorías y la herramienta realizará clasificación.
  • NUMERICLa variable_predict es continua y la herramienta realizará regresión. Esta es la configuració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 la 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
distance_features
[distance_features,...]
(Opcional)

Crea automáticamente variables explicativas mediante el cálculo de una distancia desde las entidades proporcionadas a las in_features. Las distancias se calculan desde cada una de las distance_features de entrada hasta las in_features más cercanas. Si las distance_features de entrada son polígonos o líneas, los atributos de distancia se calculan como la distancia entre los segmentos más cercanos del par de entidades.

Feature Layer
explanatory_rasters
[[Variable, Categorical],...]
(Opcional)

Crea automáticamente variables de entrenamiento explicativas en su modelo, extrayendo sus valores desde rásteres. Para cada entidad de las in_features, el valor de la celda ráster se extrae de esa ubicación exacta. Se usa remuestreo de ráster bilineal al extraer el valor de ráster, a no ser que este se especifique como de categorías, en cuyo caso se usa la asignación de vecino más cercano. Especifique el ráster como true para cualquier ráster que represente clases o categorías tales como cobertura de suelo, presencia o ausencia, y false si el ráster es continuo.

Value Table
features_to_predict
(Opcional)

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

Feature Layer
output_features
(Opcional)

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

Feature Class
output_raster
(Opcional)

El ráster de salida que contiene los resultados de predicción. El tamaño de celda predeterminado será el tamaño de celda máximo de las entradas ráster. Para definir otro tamaño de celda, utilice la configuración de entorno de tamaño de celda.

Raster Dataset
explanatory_variable_matching
[[Prediction, Training],...]
(Opcional)

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

Value Table
explanatory_distance_matching
[[Prediction, Training],...]
(Opcional)

Una lista de las distance_features especificadas para las in_features de la derecha. Los conjuntos de entidades correspondientes deberían especificarse para las features_to_predict de la izquierda.

Puede proporcionar explanatory_distance_features más adecuadas para las features_to_predict si aquellas que se utilizan para el entrenamiento se encuentran en un área de estudio o periodo de tiempo distintos.

Value Table
explanatory_rasters_matching
[[Prediction, Training],...]
(Opcional)

Una lista de las explanatory_rasters especificadas para las in_features de la derecha. Los rásteres correspondientes deberían especificarse en las features_to_predict o el output_raster que se creará en la izquierda.

Puede proporcionar explanatory_rasters más adecuadas para las features_to_predict si aquellas que se utilizan para el entrenamiento se encuentran en un área de estudio o periodo de tiempo distintos.

Value Table
output_trained_features
(Opcional)

Las output_trained_features contendrán todas las variables explicativas utilizadas para el entrenamiento (incluidos los valores de ráster y los cálculos de distancia muestreados), así como el campo variable_to_predict observado y las predicciones de acompañamiento que se pueden utilizar para evaluar en mayor profundidad el rendimiento del modelo entrenado.

Feature Class
output_importance_table
(Opcional)

Si se especifica, la tabla contendrá información que describe la importancia de cada variable explicativa (campos, entidades de distancia y rásteres) utilizada en el modelo creado.

Table
use_raster_values
(Opcional)

Especifica la forma de tratar a los polígonos al entrenar el modelo si las in_features son polígonos con una variable_predict de categorías y si solo se han especificado explanatory_rasters.

  • TRUEEl polígono se divide en todas las celdas ráster con centroides que quedan dentro del polígono. A continuación, se extraen los valores de ráster de cada centroide, que se utilizan para entrenar el modelo. El modelo ya no se entrena en el polígono en sí, sino en los valores de ráster extraídos para cada centroide de celda. Esta es la opción predeterminada.
  • FALSESe asigna a cada polígono el valor medio de los rásteres continuos subyacentes y la mayoría en el caso de los rásteres de categorías.
Boolean
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_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)

Especifica el porcentaje de las 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)

Especifica 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 (suma de campos, distancias y rásteres) si su variable_predict es numérica, o bien en dividir el número total de variables explicativas (suma de campos, distancias y rásteres) entre 3 si la variable_predict es de categorías.

Long
percentage_for_training
(Opcional)

Especifica 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.

Double
output_classification_table
(Opcional)

Si se especifica, crea una matriz de confusión para la clasificación que resume el rendimiento del modelo creado. Esta tabla se puede usar para calcular otros diagnósticos más allá de las mediciones de precisión y sensibilidad que calcula la herramienta en los mensajes de salida.

Table
output_validation_table
(Opcional)

Si el Número de ciclos de validación especificado es mayor que 2, esta tabla crea un gráfico de la distribución de R2 para cada modelo. Esta distribución se puede usar para evaluar la estabilidad de su modelo.

Table
compensate_sparse_categories
(Opcional)

Si hay categorías en el dataset que no se producen con la frecuencia de otras, al activar este parámetro garantizará que todas las categorías se representen en cada árbol.

  • TRUETodos los árboles incluirán todas las categorías representadas en el dataset de entrenamiento.
  • FALSELos árboles se crearán en función de una muestra aleatoria del dataset de entrenamiento. Esta es la opción predeterminada.
Boolean
number_validation_runs
(Opcional)

La herramienta se ejecutará durante el número de iteraciones especificado. La distribución de R2 de cada ciclo se puede mostrar con el parámetro Tabla de validación de salida. Cuando está definido y se han generado predicciones, solo el modelo que produjo el valor R2 más alto se usará para las predicciones.

Long
calculate_uncertainty
(Opcional)

Especifica si la incertidumbre de predicción se calculará al entrenar, predecir a entidades o predecir a ráster.

  • TRUE Se calculará un intervalo de incertidumbre de predicción.
  • FALSE No se calculará la incertidumbre. Esta es la opción predeterminada.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
output_uncertainty_raster_layers

Si calculate_uncertainty está activado, la herramienta calculará un intervalo de predicción del 90 por ciento sobre cada valor predicho de la variable_to_predict.

Capa ráster

Muestra de código

Ejemplo 1 de Forest (ventana de Python)

En el siguiente script de Python se muestra cómo utilizar la función Forest.

import arcpy
arcpy.env.workspace = r"c:\data"
# Forest-based model using only the training method and all data
# comes from a single polygon feature class. The tool excludes 10% of the 
# input features from training and uses these values to validate the model.
prediction_type = "TRAIN"
in_features = r"Boston_Vandalism.shp"
variable_predict = "VandCnt"
explanatory_variables = [["Educat", "false"], ["MedAge", "false"], 
    ["HHInc", "false"], ["Pop", "false"]]
output_trained_features = "TrainingFeatures.shp"
number_of_trees = 100
sample_size = 100
percentage_for_training = 10
arcpy.stats.Forest(prediction_type, in_features, variable_predict, None,
    explanatory_variables, None, None, None, None, None, None, None, None,
    output_trained_features, None, True, number_of_trees, None, None, sample_size, 
    None, percentage_for_training)
Ejemplo 2 de Forest (script independiente)

En el siguiente script de Python se muestra cómo utilizar la función Forest para predecir a entidades.

# Import system modules
import arcpy
# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True
# Set the work space to a gdb
arcpy.env.workspace = r"C:\Data\BostonCrimeDB.gdb"
# Forest-based model taking advantage of both distance features and 
# explanatory rasters. The training and prediction data has been manually
# split so the percentage to exclude parameter was set to 0. A variable importance
# table is created to help assess results and advanced options have been used
# to fine tune the model.
prediction_type = "PREDICT_FEATURES"
in_features = r"Boston_Vandalism_Training"
variable_predict = "Vandalism_Count"
treat_variable_as_categorical = None
explanatory_variables = [["EduClass", "true"], ["MedianAge", "false"],
    ["HouseholdIncome", "false"], ["TotalPopulation", "false"]]
distance_features = r"Boston_Highways"
explanatory_rasters = r"LandUse true"
features_to_predict = r"Boston_Vandalism_Prediction"
output_features = r"Prediction_Output"
output_raster = None
explanatory_variable_matching = [["EduClass", "EduClass"], ["MedianAge", "MedianAge"], 
    ["HouseholdIncome", "HouseholdIncome"], ["TotalPopulation", "TotalPopulation"]]
explanatory_distance_matching = [["Boston_Highways", "Boston_Highways"]]
explanatory_rasters_matching = [["LandUse", "LandUse"]]
output_trained_features = r"Training_Output"
output_importance_table = r"Variable_Importance"
use_raster_values = True
number_of_trees = 100
minimum_leaf_size = 2
maximum_level = 5
sample_size = 100
random_sample = 3
percentage_for_training = 0
arcpy.stats.Forest(prediction_type, in_features, variable_predict,
    treat_variable_as_categorical, explanatory_variables, distance_features,
    explanatory_rasters, features_to_predict, output_features, output_raster,
    explanatory_variable_matching, explanatory_distance_matching, 
    explanatory_rasters_matching, output_trained_features, output_importance_table,
    use_raster_values, number_of_trees, minimum_leaf_size, maximum_level,
    sample_size, random_sample, percentage_for_training)
Ejemplo 3 de Forest (script independiente)

En el siguiente script de Python se muestra cómo utilizar la función Forest para crear una superficie de predicción.

# Import system modules import arcpy
# Set property to overwrite existing outputs arcpy.env.overwriteOutput = True
# Set the work space to a gdb arcpy.env.workspace = r"C:\Data\Landsat.gdb"
# Using a forest-based model to classify a landsat image. The TrainingPolygons feature 
# class was created manually and is used to train the model to 
# classify the remainder of the landsat image.
prediction_type = "PREDICT_RASTER"
in_features = r"TrainingPolygons"
variable_predict = "LandClassName"
treat_variable_as_categorical = "CATEGORICAL" explanatory_variables = None distance_features = None explanatory_rasters = [["Band1", "false"], ["Band2", "false"], ["Band3", "false"]] features_to_predict = None output_features = None output_raster = r"PredictionSurface"
explanatory_variable_matching = None explanatory_distance_matching = None explanatory_rasters_matching = [["Band1", "Band1"], ["Band2", "Band2"], ["Band3", "Band3"]] output_trained_features = None output_importance_table = None use_raster_values = True number_of_trees = 100 minimum_leaf_size = None maximum_level = None sample_size = 100 random_sample = None percentage_for_training = 10
arcpy.stats.Forest(prediction_type, in_features, variable_predict,    treat_variable_as_categorical, explanatory_variables, distance_features,    explanatory_rasters, features_to_predict, output_features, output_raster,    explanatory_variable_matching, explanatory_distance_matching,     explanatory_rasters_matching, output_trained_features, output_importance_table,
    use_raster_values, number_of_trees, minimum_leaf_size, maximum_level,    sample_size, random_sample, percentage_for_training)

Entornos

Generador de números aleatorios

El tipo de generador de números aleatorios que se utiliza siempre es Mersenne Twister.

Factor de procesamiento en paralelo

El procesamiento en paralelo solo se usa cuando se hacen predicciones.

Información de licenciamiento

  • Basic: Limitado
  • Standard: Limitado
  • Advanced: Limitado

Temas relacionados