Классификация на основе леса и регрессия (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

Синтаксис

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})
ParameterОбъяснениеТип данных
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
(Дополнительный)

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

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. Все результаты из SPATIOTEMPORAL_DATA_STORE будут сохранены в WGS84. Результаты, сохраненные в RELATIONAL_DATA_STORE сохранят собственную систему координат.

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

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

NameОбъяснениеТип данных
output_trained

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

Набор записей
variable_of_importance

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

Набор записей
output_predicted

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

Набор записей

Пример кода

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

Environments

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

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

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

  • Basic: Требуется ArcGIS GeoAnalytics Server
  • Standard: Требуется ArcGIS GeoAnalytics Server
  • Advanced: Требуется ArcGIS GeoAnalytics Server

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