Resumen
Genera un archivo de definición de clasificador de Esri (.ecd) utilizando el método de clasificación de árboles aleatorios.
El clasificador de árboles aleatorios es una potente técnica para la clasificación de imágenes que resiste al exceso de ajuste y que puede funcionar con imágenes segmentadas y con otros datasets ráster antiguos. Para las entradas de imagen estándar, la herramienta acepta imágenes de varias bandas con cualquier profundidad de bit y realiza la clasificación de árboles aleatorios por píxel, según el archivo de entidades de la formación de entrada.
Uso
Los árboles aleatorios son una recopilación de árboles de decisión individuales donde cada árbol se genera a partir de distintas muestras y subconjuntos de los datos de formación. La idea que hay detrás de llamar a estos árboles de decisión es que para cada píxel que se clasifica se crea un número de decisiones que se ordenan por la importancia. Cuando se representan gráficamente para un píxel, tienen el aspecto de una rama. Cuando se clasifica todo el dataset, las ramas forman un árbol. Este método se denomina árboles aleatorios porque, de hecho, lo que el usuario hace es clasificar el dataset una serie de veces basándose en una subselección aleatoria de píxeles de formación, lo que da como resultado muchos árboles de decisión. Para tomar una decisión final, cada árbol recibe un voto. Este proceso funciona para mitigar el exceso de ajuste. Los árboles aleatorios consisten en un clasificador de formación automático y supervisado basado en crear una multitud de árboles de decisión, elegir subconjuntos aleatorios de variables para cada árbol y utilizar la salida de árbol más frecuente como clasificación general. Los árboles aleatorios corrigen la tendencia de los árboles de decisión al exceso de ajuste en sus datos de muestra de formación. En este método crecen una serie de árboles, por analogía, un bosque, y la variación entre los árboles se introduce proyectando los datos de formación en un subespacio elegido al azar antes de colocar cada árbol. La decisión en cada nodo se optimiza mediante un procedimiento aleatorio.
Para los rásteres segmentados, que tienen establecida la propiedad clave en Segmentada, la herramienta calcula la imagen de índice y los atributos de segmento asociados del ráster segmentado RGB. Se calculan los atributos para generar el archivo de definición de clasificador que se va a utilizar en una herramienta de clasificación aparte. Los atributos de cada segmento se pueden calcular desde cualquier imagen compatible con Esri.
Se acepta como entrada cualquier ráster compatible con Esri, incluidos productos de ráster, rásteres segmentados, mosaicos, servicios de imágenes o datasets ráster genéricos. Los rásteres segmentados deben tener 8 bits y 3 bandas.
Para crear el archivo de ejemplo de formación, utilice el Administrador de ejemplos de formación de la barra de herramientas Clasificación de imagen. Para obtener información sobre cómo utilizar la barra de herramientas Clasificación de imagen, consulte ¿Qué es la clasificación de imagen?
El parámetro Atributos de segmento solo está habilitado si una de las entradas de capa ráster es una imagen segmentada.
Sintaxis
TrainRandomTreesClassifier (in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_num_trees}, {max_tree_depth}, {max_samples_per_class}, {used_attributes})
Parámetro | Explicación | Tipo de datos |
in_raster | Seleccione el dataset ráster que desee clasificar. Puede utilizar cualquier dataset ráster compatible con Esri. Entre las opciones se incluyen un dataset ráster segmentado de 3 bandas y 8 bits, donde todos los píxeles del mismo segmento tienen el mismo color. La entrada también puede ser un ráster segmentado en escala de grises de 1 banda y 8 bits. | Raster Layer; Mosaic Layer; Image Service; String |
in_training_features | Seleccione el archivo de muestra de formación o la capa que delinea los sitios de formación. Estos pueden ser shapefiles o clases de entidad que contengan las muestras de formación. | Feature Layer; Raster Catalog Layer |
out_classifier_definition | Archivo JSON que contiene información de atributos, estadísticas u otra información necesaria para el clasificador. Se crea un archivo con la extensión .ecd. | File |
in_additional_raster (Opcional) | Existe la opción de incorporar datasets ráster auxiliares, como una imagen multiespectral o un DEM, para generar atributos, así como otra información necesaria para la clasificación. | Raster Layer; Mosaic Layer; Image Service; String |
max_num_trees (Opcional) | El número máximo de árboles en el bosque. Al aumentar el número de árboles se obtendrán tasas de precisión más elevadas aunque, al final, esta mejora se estabiliza. El número de árboles aumenta el tiempo de procesamiento de forma lineal. | Long |
max_tree_depth (Opcional) | La profundidad máxima de cada árbol del bosque. La profundidad es otra forma de indicar la cantidad de reglas que puede crear cada árbol para llegar a una decisión. Los árboles no profundizarán más allá de este valor. | Long |
max_samples_per_class (Opcional) | El número máximo de muestras que se van a utilizar para definir cada clase. Se recomienda un valor predeterminado de 1000 cuando las entradas son rásteres no segmentados. Un valor igual o menor que 0 significa que el sistema utilizará todas las muestras de los sitios de formación para preparar el clasificador. | Long |
used_attributes [used_attributes;used_attributes,...] (Opcional) | Especifique los atributos que se deben incluir en la tabla de atributos asociada al ráster de salida.
Este parámetro solo está habilitado si la propiedad clave Segmentado se establece en verdadera en el ráster de entrada. Si la única entrada en la herramienta es una imagen segmentada, los atributos predeterminados son COLOR, COUNT, COMPACTNESS y RECTANGULARITY. Si también se incluye un in_additional_raster como entrada junto a la imagen segmentada, MEAN y STD están disponibles como opciones. | String |
Muestra de código
Ejemplo 1 de TrainRandomTreesClassifier (ventana de Python)
Esta es una muestra de Python para la herramienta TrainRandomTreesClassifier.
import arcpy
from arcpy.sa import *
TrainRandomTreesClassifier("c:/test/moncton_seg.tif",
"c:/test/train.gdb/train_features",
"c:/output/moncton_sig_SVM.ecd",
"c:/test/moncton.tif", "50", "30", "1000",
"COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY")
Ejemplo 2 de TrainRandomTreesClassifier (secuencia de comandos independiente)
Esta es una muestra de la secuencia de comandos de Python para la herramienta TrainRandomTreesClassifier.
# Import system modules
import arcpy
from arcpy.sa import *
# Set local variables
inSegRaster = "c:/test/cities_seg.tif"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/cities_sig.ecd"
in_additional_raster = "c:/cities.tif"
maxNumTrees = "50"
maxTreeDepth = "30"
maxSampleClass = "1000"
attributes = "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute
TrainRandomTreesClassifier(inSegRaster, train_features,
out_definition, in_additional_raster, maxNumTrees,
maxTreeDepth, maxSampleClass, attributes)
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Requiere Spatial Analyst
- ArcGIS Desktop Standard: Requiere Spatial Analyst
- ArcGIS Desktop Advanced: Requiere Spatial Analyst