Краткая информация
Создает файл определения классификатора Esri (.ecd) с использованием метода классификации Случайных деревьев.
Классификатор произвольных деревьев – мощный механизм классификации изображений, устойчивый к принудительной подгонке и способный работать с сегментированными изображениями и другими дополнительными наборами растровых данных. Для стандартных входных изображений, инструмент принимает многоканальные изображения любой битовой глубины и выполняет классификацию методом произвольных деревьев по пикселам на основе входного файла обучающих объектов.
Использование
Произвольные деревья – это набор отдельных деревьев решений, в котором каждое дерево создается на основе разных выборок и поднаборов обучающих данных. В основе идеи названия этих решений деревьями лежит то, что для каждого классифицируемого пиксела число решений производится в порядке важности. В графическом представлении пиксела это выглядит как ветвь. При классификации всего набора данных, эти ветви формируют дерево. Этот метод называется произвольными деревьями, поскольку набор данных классифицируется несколько раз на базе случайного поднабора пикселов для обучения, это приводит к появлению нескольких деревьев решений. Для принятия окончательного решения каждому дереву присваиваются баллы. Это делается для избежания чрезмерной подгонки. Классификатор произвольного дерева – это классификация с машинным обучением, основанная на построении множества деревьев решений, выборе случайных поднаборов переменных для каждого дерева и использовании наиболее часто встречающихся результатов в качестве общей классификации. Метод произвольных деревьев корректирует предрасположенность деревьев решений к чрезмерной подгонке к своим обучающим выборкам. В этом методе создается большое количество деревьев – по аналогии с лесом – а различие между деревьями вводится с помощью проецирования данных обучения в случайно выбранное подпространство перед подбором каждого дерева. Решение для каждого узла оптимизируется случайной процедурой.
Для сегментированных растров, ключевое свойство которых установлено как Сегментированный, инструмент вычисляет индексное изображение и связанные атрибуты сегмента из сегментированного растра RGB. Атрибуты вычисляются для создания файла определения классификатора, который должен быть использован в отдельном инструменте классификации.Атрибуты для каждого сегмента могут быть вычислены для любого, поддерживаемого Esri изображения.
Любой поддерживаемый Esri растр принимается в качестве входных данных, включая растровые продукты, сегментированные растры, мозаики, сервисы изображений или наборы растровых данных в общих форматах. Сегментированные растры должны быть 8-битными с 3 каналами.
Атрибуты сегмента доступны в том случае, когда одним из входных растровых слоёв является сегментированное изображение.
Синтаксис
TrainRandomTreesClassifier (in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_num_trees}, {max_tree_depth}, {max_samples_per_class}, {used_attributes})
Параметр | Объяснение | Тип данных |
in_raster | Выберите набор растровых данных, который вы хотите классифицировать. Можно использовать любой поддерживаемый Esri набор растровых данных. Допустимым является 3-х канальный 8-битный сегментированный набор растровых данных, в котором все пикселы в том же сегменте имеют тот же цвет. Входными данными может также являться одноканальный 8-битный сегментированный растр в шкале серых оттенков. | Raster Layer |
in_training_features | Выберите файл обучающей выборки или слой, который определяет районы обучающей выборки. Это могут быть либо шейп-файлы, либо классы объектов, которые содержат ваши обучающие выборки. | Feature Layer | Raster Catalog Layer |
out_classifier_definition | Это файл JSON, который содержит информацию об атрибутах, статистику и другую информацию, необходимую для классификатора. Создаётся файл с расширением .ecd. | File |
in_additional_raster (Дополнительный) | Дополнительно включите вспомогательные наборы растровых данных, такие как сегментированное изображение, спектрозональное изображение или ЦМР, для создания атрибутов и другой необходимой для классификатора информации. | Raster Layer | Mosaic Layer |
max_num_trees (Дополнительный) | Максимальное количество деревьев в лесу. Увеличение числа деревьев приведет к большей точности оценки, но в какой-то момент эти улучшения сойдут на нет. Число деревьев пропорционально увеличивает время обработки. | Integer |
max_tree_depth (Дополнительный) | Максимальная глубина каждого дерева в лесу. Глубина – другой способ задания количества правил, допустимых для каждого создаваемого дерева, с целью принятия решения. Деревья не будут расти глубже этого параметра. | Integer |
max_samples_per_class (Дополнительный) | Максимальное количество образцов для определения каждого класса. Когда входными данными являются несегментированные растры, то рекомендуется использовать значение по умолчанию 100. Значение, которое меньше или равно 0, означает, что система будет использовать все образцы из обучающих местоположений для обучения классификатора. | Long |
used_attributes used_attributes;used_attributes (Дополнительный) | Укажите атрибуты, которые будут включены в связанную с выходным растром таблицу атрибутов. Если для входных данных инструмента используется только сегментированное изображение, то атрибутами по умолчанию будут COLOR, COUNT, COMPACTNESS и RECTANGULARITY. Если в качестве входных данных вместе с сегментированным изображением также используется in_additional_raster, то тогда MEAN и STD будут доступны как опции.
| String |
Пример кода
TrainRandomTreesClassifier, пример 1 (окно Python)
Это пример на языке Python, иллюстрирующий применение инструмента 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")
TrainRandomTreesClassifier, пример 2 (автономный скрипт)
Это пример скрипта Python, иллюстрирующий применение инструмента 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)
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует Spatial Analyst
- ArcGIS Desktop Standard: Требует Spatial Analyst
- ArcGIS Desktop Advanced: Требует Spatial Analyst