Классификация на основе леса и регрессия (GeoAnalytics)

Краткая информация

Строит модели и выполняет прогнозирование при помощи адаптации алгоритма произвольного леса, метода контролируемого машинного обучения Лео Бреймана и Адели Калтер. Прогнозы могут быть выполнены для обеих категориальных перемененных (классификация) и непрерывных переменных (регрессия). Независимые переменные могут иметь вид полей в атрибутивной таблице обучающих объектов. В дополнение к проверке производительности модели на основании обучающих данных, по объектам можно выполнять прогнозы.

Использование

  • Данный инструмент создает сотни деревьев, называемых множеством деревьев решений, чтобы построить модель, которую можно использовать для прогнозирования. Каждое из деревьев решений создается при помощи произвольно получаемых частей исходных (обучающих) данных. Каждое дерево строит собственный прогноз и становится предложением для итогового результата. Алгоритм модели леса рассматривает предложения от всех деревьев решений, чтобы спрогнозировать или классифицировать результат неизвестной выборки. Это важно, поскольку отдельные деревья могут иметь проблемы с чрезмерно близкой подгонкой модели; но объединение нескольких деревьев в лес для прогнозирования решает проблему чрезмерно близкой подгонки, связанную с одним деревом.

  • Этот инструмент можно использовать в двух режимах. Режим Обучение можно использовать для оценки производительности разных моделей при изучении различных независимых переменных и настроек инструментов. Как только найдена хорошая модель, можно использовать режим Обучение и прогноз.

  • Он является инструментом, управляемым данными, и наилучшим образом работает с большими наборами данных. Для наилучшего результата обучение инструмента должно происходить хотя бы на нескольких сотнях объектов. Инструмент не подходит для очень маленьких наборов данных.

  • Входными обучающими объектами могут быть таблицы, точечные, линейные или полигональные объекты. Инструмент не работает с составными объектами.

  • Пространственные объекты, имеющие одно или более значений null или пустые строковые значения в полях прогноза или в независимых полях, будут исключены из результатов. Если требуется, значения можно изменить с помощью инструмента Вычислить поле.

  • Этот инструмент производит разнообразные выходные данные, в зависимости от следующих режимов работы:

    • Обучение производит следующие два:
      • Выходные обучающие объекты - Содержат все Входные обучающие объекты, использованные в создаваемой модели, а также все независимые переменные модели. Также они содержат прогнозы для всех объектов, использованных для обучения модели, что может быть полезно при оценке эффективности созданной модели.
      • Итоговые сообщения инструмента - сообщения, которые помогают понять производительность созданной модели. В сообщения входит информация о характеристиках модели, значимости переменных и диагностика проверки.
    • Обучение и прогноз производит следующие три:
      • Выходные обучающие объекты - Содержат все Входные обучающие объекты, использованные в создаваемой модели, а также все независимые переменные модели. Также они содержат прогнозы для всех объектов, использованных для обучения модели, что может быть полезно при оценке эффективности созданной модели.
      • Выходные прогнозируемые объекты - слой результатов прогноза. Прогнозы применяются к слою (используйте опцию Входные объекты прогнозирования), используя модель, сгенерированную из обучающего слоя.
      • Итоговые сообщения инструмента - сообщения, которые помогают понять производительность созданной модели. В сообщения входит информация о характеристиках модели, значимости переменных и диагностика проверки.

  • Можно использовать параметр Создать таблицу значимости переменных, чтобы создать таблицу для отображения диаграммы значимости переменных для оценки. Верхние 20 значений значимости переменных также показываются в окне сообщений.

  • Независимые переменные могут поступать из полей и должны содержать разнообразные значения. Если независимая переменная является категориальной, следует включить опцию Категориальная (переменные строкового типа будут отмечены автоматически). Категориальные независимые переменные ограничены 60 уникальными значениями, хотя меньшее количество категорий улучшит производительность модели. Для данного размера данных, чем больше категорий содержит переменная, тем больше вероятность того, что она будет доминировать в модели и приведет к менее эффективным результатам прогнозирования.

  • При сопоставлении независимых переменных, Поле обучения и Поле прогноза должны быть одного типа (например, поле типа double в Поле обучения должно сопоставляться с полем типа double в Поле прогноза).

  • Модели на основе леса не выполняют экстраполяцию, они могут только классифицировать или прогнозировать значения, на которых обучалась модель. Обучение модели с помощью обучающих объектов и независимых переменных, которые находятся в пределах диапазона целевых объектов и переменных. Инструмент не сработает, если в независимых переменных прогнозирования, не представленных в обучающих объектах, существуют категории.

  • Значение по умолчанию для параметра Число деревьев равно 100. Увеличение числа деревьев в модели леса приведет к более точному прогнозированию модели, но модель будет дольше вычисляться.

  • Поддерживается один слой для обучения и один слой для прогноза. Чтобы совместить несколько наборов данных в один, используйте инструменты Построить сетку нескольких переменных и Обогатить из сетки нескольких переменных для получения входных данных.

  • Этот инструмент геообработки работает на ArcGIS GeoAnalytics Server. Анализ выполняется на вашем GeoAnalytics Server, а результаты сохраняются в ресурсы на ArcGIS Enterprise.

  • При запуске инструментов GeoAnalytics Server анализ выполняется на GeoAnalytics Server. Для оптимальной производительности сделайте данные доступными для GeoAnalytics Server через векторные слои, размещенные на вашем портале ArcGIS Enterprise или через файловое хранилище больших данных. Данные, которые не являются локальными для GeoAnalytics Server, будут перемещены на GeoAnalytics Server до начала анализа. Это означает, что для запуска инструмента потребуется больше времени, а в некоторых случаях перемещение данных с ArcGIS Pro на GeoAnalytics Server может завершиться ошибкой. Порог сбоя зависит от скорости сети, а также от размера и сложности данных. Рекомендуется всегда публиковать данные или создавать файловое хранилище больших данных.

    Более подробно о публикации локаторов на портале

    Более подробно о создании файловых хранилищ больших данных в Server Manager

Параметры

ПодписьОписаниеТип данных
Тип прогнозирования

Задает режим выполнения инструмента. Инструмент может быть запущен для обучения модели только для оценки производительности, прогнозирования объектов или создания поверхности ,

  • Только обучениеМодель будет обучена, но прогнозы созданы не будут. Используйте эту опцию для оценки точности модели перед созданием прогнозов. Эта опция создаст выходную диагностику модели в окне сообщений и диаграмму значимости переменных. Используется по умолчанию
  • Обучение и прогнозДля объектов будут созданы прогнозы или классификация. Независимые переменные должны быть представлены и для обучающих объектов, и для прогнозируемых объектов. Выходными данными этой опции будут класс объектов, диагностика модели в окне сообщений, дополнительная таблица значимости переменных.
String
Входные обучающие объекты

Слой, содержащий параметр Переменная для прогнозирования и независимые переменные обучения из полей.

Record Set
Имя выходных объектов
(Дополнительный)

Имя выходного векторного слоя.

String
Переменная для прогнозирования
(Дополнительный)

Переменная из параметра Входные обучающие объекты, содержащая значения, используемые для обучения модели. Это поле содержит известные (обучающие) значения переменной, которые будут использованы для прогнозирования в неизвестных местоположениях.

Field
Рассматривать переменную как Категориальную
(Дополнительный)

Указывает, будет ли Переменная для прогнозирования категориальной переменной.

  • Отмечено – Переменная для прогнозирования является категориальной переменной, и инструмент будет выполнять классификацию.
  • Не отмечено – Переменная для прогнозирования является непрерывной, и инструмент будет выполнять регрессию. Это значение по умолчанию
Boolean
Независимые переменные
(Дополнительный)

Список полей, представляющих независимые переменные, которые помогут прогнозировать значения или категории Переменных для прогнозирования. Включите опцию Категориальная для любых переменных, которые представляют классы или категории (например, почвенно-растительный покров – его наличие или отсутствие).

Value Table
Создать таблицу значимости переменных
(Дополнительный)

Определяет, будет ли выходная таблица содержать информацию, описывающую значимость каждой независимой переменной, использованной при создании модели.

  • Отмечено - выходная таблица будет содержать информацию для каждой независимой переменной.
  • Не отмечено - выходная таблица не будет содержать информации для каждой независимой переменной. Это значение по умолчанию
Boolean
Входные объекты прогнозирования
(Дополнительный)

Векторный слой, представляющий местоположения, где будет выполняться прогнозирование. Этот векторный слой также должен содержать любые независимые переменные, представленные в виде полей, которые соответствуют используемым в обучающих данных.

Record Set
Сопоставление независимых переменных
(Дополнительный)

Список Независимых переменных, заданных во Входных обучающих объектах справа, и соответствующие поля из Входных объектов прогнозирования слева.

Value Table
Число деревьев
(Дополнительный)

Число деревьев для создания модели леса. Увеличение числа деревьев приведет к более точному прогнозированию модели, но модель будет дольше вычисляться. По умолчанию число деревьев равно 100.

Long
Минимальный размер листа
(Дополнительный)

Минимальное число наблюдений, необходимых для сохранения листа (т.е. конечного объекта на дереве, без дальнейшего разбиения). Минимум по умолчанию для регрессии составляет 5, а для классификации – 1. Для очень больших данных увеличение этого числа увеличит время работы инструмента.

Long
Максимальная глубина дерева
(Дополнительный)

Максимальное число разбиений, которые будут сделаны вниз по дереву . При большей максимальной глубине будет создано больше разбиений, что может увеличить вероятность чрезмерной подгонки модели. Значение по умолчанию управляется данными и зависит от числа созданных деревьев и количества включенных переменных.

Long
Данные, доступные для одного дерева (%)
(Дополнительный)

Процент Входных обучающих объектов, используемых для каждого дерева решений. По умолчанию это 100 процентов от данных. Выборка для каждого дерева берется произвольно из двух третей указанных данных.

Каждое дерево решений в лесу создается с с использованием случайной выборки или поднабора (примерно две трети) доступных обучающих данных. Понижение процента входных данных для каждого дерева решений увеличит скорость инструмента при работе с очень большими наборами данных.

Long
Число произвольно выбранных переменных
(Дополнительный)

Число независимых переменных, используемых для создания каждого дерева решений.

Каждое из деревьев решений в лесу создается с использованием случайного поднабора заданных независимых переменных. Увеличение числа переменных, используемых для создания каждого дерева решений, увеличит вероятность чрезмерной подгонки модели, особенно, если имеется одна или больше доминирующая переменная. Обычно используется квадратный корень от общего числа независимых переменных, если Переменная для прогнозирования является числовой, или разделите общее число независимых переменных на 3, если Переменная для прогнозирования является категорийной.

Long
Обучающие данные, исключенные из проверки (%)
(Дополнительный)

Процент (от 10 до 50) от Входных обучающих объектов, чтобы сохранить их как тестовый набор данных для проверки. Обучение модели будет происходить без этого произвольного поднабора данных, и значения наблюдений для этих объектов будут сравниваться с прогнозируемыми значениями. Значение по умолчанию – 10 процентов.

Long
Хранилище данных
(Дополнительный)

Задает ArcGIS Data Store, где будут сохраняться выходные данные. По умолчанию это Хранилище больших пространственно-временных данных. Все результаты, находящиеся в хранилище пространственно-временных больших данных, будут храниться в системе WGS84. Результаты в реляционном хранилище данных сохраняют свои систему координат.

  • Хранилище пространственно-временных больших данныхРезультаты будут храниться в хранилище больших пространственно-временных данных. Это значение по умолчанию
  • Реляционное хранилище данныхРезультаты будут храниться в хранилище реляционных данных.
String

Производные выходные данные

ПодписьОписаниеТип данных
Выходные обученные объекты

Выходные данные содержат входные переменные, используемые для обучения, а также наблюдаемую переменную для параметра прогнозирования и сопровождающие прогнозы, которые можно использовать для дальнейшей оценки производительности модели.

Record Set
Переменная таблицы важности

Таблица будет содержать информацию, описывающую значимость каждой независимой переменной, использованной при создании модели.

Record Set
Выходные объекты прогнозирования

Слой, который получит прогнозы из модели.

Record Set

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})
ИмяОписаниеТип данных
prediction_type

Задает режим выполнения инструмента. Инструмент может быть запущен для обучения модели только для оценки производительности, прогнозирования объектов или создания поверхности ,

  • TRAINМодель будет обучена, но прогнозы созданы не будут. Используйте эту опцию для оценки точности модели перед созданием прогнозов. Эта опция создаст выходную диагностику модели в окне сообщений и диаграмму значимости переменных. Используется по умолчанию
  • TRAIN_AND_PREDICTДля объектов будут созданы прогнозы или классификация. Независимые переменные должны быть представлены и для обучающих объектов, и для прогнозируемых объектов. Выходными данными этой опции будут класс объектов, диагностика модели в окне сообщений, дополнительная таблица значимости переменных.
String
in_features

Класс объектов, содержащий параметр variable_predict и независимые переменные обучения из полей.

Record Set
output_trained_name
(Дополнительный)

Имя выходного векторного слоя.

String
variable_predict
(Дополнительный)

Переменная из параметра in_features, содержащая значения, используемые для обучения модели. Это поле содержит известные (обучающие) значения переменной, которые будут использованы для прогнозирования в неизвестных местоположениях.

Field
treat_variable_as_categorical
(Дополнительный)
  • CATEGORICALvariable_predict является категориальной переменной, и инструмент будет выполнять классификацию.
  • NUMERICvariable_predict является непрерывной, и инструмент будет выполнять регрессию. Это значение по умолчанию
Boolean
explanatory_variables
[[Variable, Categorical],...]
(Дополнительный)

Список полей, представляющих независимые переменные, которые помогут прогнозировать значения или категории variable_predict. Используйте параметр treat_variable_as_categorical для любых переменных, которые представляют классы или категории (например, почвенно-растительный покров – его наличие или отсутствие). Укажите переменную true для всего, что представляет классы или категории, например, наличие или отсутствие почвенно-растительного покрова, и false, если переменная является непрерывной.

Value Table
create_variable_importance_table
(Дополнительный)

Определяет, будет ли выходная таблица содержать информацию, описывающую значимость каждой независимой переменной, использованной при создании модели.

  • CREATE_TABLEВыходная таблица будет содержать информацию для каждой независимой переменной
  • NO_TABLEВыходная таблица не будет содержать информации для каждой независимой переменной. Это значение по умолчанию
Boolean
features_to_predict
(Дополнительный)

Векторный слой, представляющий местоположения, где будет выполняться прогнозирование. Этот векторный слой также должен содержать любые независимые переменные, представленные в виде полей, которые соответствуют используемым в обучающих данных.

Record Set
explanatory_variable_matching
[[Prediction, Training],...]
(Дополнительный)

Список explanatory_variables, заданных в in_features, справа и соответствующие поля из features_to_predict слева, например, [["LandCover2000", "LandCover2010"], ["Income", "PerCapitaIncome"]].

Value Table
number_of_trees
(Дополнительный)

Число деревьев для создания модели леса. Увеличение числа деревьев приведет к более точному прогнозированию модели, но модель будет дольше вычисляться. По умолчанию число деревьев равно 100.

Long
minimum_leaf_size
(Дополнительный)

Минимальное число наблюдений, необходимых для сохранения листа (т.е. конечного объекта на дереве, без дальнейшего разбиения). Минимум по умолчанию для регрессии составляет 5, а для классификации – 1. Для очень больших данных увеличение этого числа увеличит время работы инструмента.

Long
maximum_tree_depth
(Дополнительный)

Максимальное число разбиений, которые будут сделаны вниз по дереву . При большей максимальной глубине будет создано больше разбиений, что может увеличить вероятность чрезмерной подгонки модели. Значение по умолчанию управляется данными и зависит от числа созданных деревьев и количества включенных переменных.

Long
sample_size
(Дополнительный)

Процент in_features, используемых для каждого дерева решений. По умолчанию это 100 процентов от данных. Выборка для каждого дерева берется произвольно из двух третей указанных данных.

Каждое дерево решений в лесу создается с с использованием случайной выборки или поднабора (примерно две трети) доступных обучающих данных. Понижение процента входных данных для каждого дерева решений увеличит скорость инструмента при работе с очень большими наборами данных.

Long
random_variables
(Дополнительный)

Число независимых переменных, используемых для создания каждого дерева решений.

Каждое из деревьев решений в лесу создается с использованием случайного поднабора заданных независимых переменных. Увеличение числа переменных, используемых для создания каждого дерева решений, увеличит вероятность чрезмерной подгонки модели, особенно, если имеется одна или больше доминирующая переменная. Обычно используется квадратный корень от общего числа независимых переменных, если variable_predict является числовой, или разделите общее число независимых переменных на 3, если variable_predict является категорийной.

Long
percentage_for_validation
(Дополнительный)

Процент (от 10 до 50) от in_features, чтобы сохранить их как тестовый набор данных для проверки. Обучение модели будет происходить без этого произвольного поднабора данных, и значения наблюдений для этих объектов будут сравниваться с прогнозируемым значением. Значение по умолчанию – 10 процентов.

Long
data_store
(Дополнительный)

Задает ArcGIS Data Store, где будут сохраняться выходные данные. По умолчанию – SPATIOTEMPORAL_DATA_STORE. Все результаты, находящиеся в хранилище пространственно-временных больших данных, будут храниться в системе WGS84. Результаты в реляционном хранилище данных сохраняют свои систему координат.

  • SPATIOTEMPORAL_DATA_STOREРезультаты будут храниться в хранилище больших пространственно-временных данных. Это значение по умолчанию
  • RELATIONAL_DATA_STOREРезультаты будут храниться в хранилище реляционных данных.
String

Производные выходные данные

ИмяОписаниеТип данных
output_trained

Выходные данные содержат входные переменные, используемые для обучения, а также наблюдаемую переменную для параметра прогнозирования и сопровождающие прогнозы, которые можно использовать для дальнейшей оценки производительности модели.

Record Set
variable_of_importance

Таблица будет содержать информацию, описывающую значимость каждой независимой переменной, использованной при создании модели.

Record Set
output_predicted

Слой, который получит прогнозы из модели.

Record Set

Пример кода

Forest, пример (окно Python)

В следующем скрипте окна Python показано, как используется инструмент ForestBasedClassificationAndRegression.

В этом скрипте описываются сетевые функции и создается образец слоя с 2500 объектов.

#-------------------------------------------------------------------------------
# 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")

Параметры среды

Особые случаи

Выходная система координат

Система координат, используемая при анализе. Если данный параметр не указан, анализ будет выполнен во входной системе координат. Для GeoAnalytics Tools готовые результаты будут храниться в пространственно-временном хранилище данных в WGS84.

Информация о лицензиях

  • Basic: Обязательно ArcGIS GeoAnalytics Server
  • Standard: Обязательно ArcGIS GeoAnalytics Server
  • Advanced: Обязательно ArcGIS GeoAnalytics Server

Связанные разделы