Сводка
Создает модели и строит прогнозы при помощи адаптации метода контролируемого машинного обучения произвольного леса Лео Бреймана. Прогнозы могут быть выполнены для обеих категориальных перемененных (классификация) и непрерывных переменных (регрессия). Описательные переменные могут иметь вид полей в атрибутивной таблице обучающих объектов. В дополнение к проверке производительности модели на основании обучающих данных, по объектам можно выполнять прогнозы.
Использование
Данный инструмент создает сотни деревьев, называемых множеством деревьев решений, чтобы построить модель, которую можно использовать для прогнозирования. Каждое из деревьев решений создается при помощи произвольно получаемых частей исходных (обучающих) данных. Каждое дерево строит собственный прогноз и становится предложением для итогового результата. Алгоритм модели леса рассматривает предложения от всех деревьев решений, чтобы спрогнозировать или классифицировать результат неизвестной выборки. Это важно, поскольку отдельные деревья могут иметь проблемы с чрезмерно близкой подгонкой модели; но объединение нескольких деревьев в лес для прогнозирования решает проблему чрезмерно близкой подгонки, связанную с одним деревом.
Этот инструмент можно использовать в двух режимах. Режим Обучение можно использовать для оценки производительности разных моделей при изучении различных независимых переменных и настроек инструментов. Как только найдена хорошая модель, можно использовать режим Обучение и прогноз.
Он является инструментом, управляемым данными, и наилучшим образом работает с большими наборами данных. Для наилучшего результата обучение инструмента должно происходить хотя бы на нескольких сотнях объектов. Инструмент не подходит для очень маленьких наборов данных.
Входными обучающими объектами могут быть таблицы, точечные, линейные или полигональные объекты. Инструмент не работает с составными объектами.
Пространственные объекты, имеющие одно или более значений 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
Синтаксис
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})
Parameter | Объяснение | Тип данных |
prediction_type | Задает режим выполнения инструмента. Инструмент может быть запущен для обучения модели только для оценки производительности, прогнозирования объектов или создания поверхности ,
| String |
in_features | Класс объектов, содержащий параметр variable_predict и независимые переменные обучения из полей. | Record Set |
output_trained_name (Дополнительный) | Имя выходного векторного слоя. | String |
variable_predict (Дополнительный) | Переменная из параметра in_features, содержащая значения, используемые для обучения модели. Это поле содержит известные (обучающие) значения переменной, которые будут использованы для прогнозирования в неизвестных местоположениях. | Field |
treat_variable_as_categorical (Дополнительный) |
| 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. Все результаты, находящиеся в хранилище пространственно-временных больших данных, будут храниться в системе WGS84. Результаты в реляционном хранилище данных сохраняют свои систему координат.
| String |
Производные выходные данные
Name | Объяснение | Тип данных |
output_trained | Выходные данные содержат входные переменные, используемые для обучения, а также наблюдаемую переменную для параметра прогнозирования и сопровождающие прогнозы, которые можно использовать для дальнейшей оценки производительности модели. | Набор записей |
variable_of_importance | Таблица будет содержать информацию, описывающую значимость каждой независимой переменной, использованной при создании модели. | Набор записей |
output_predicted | Слой, который получит прогнозы из модели. | Набор записей |
Пример кода
В следующем скрипте окна 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
- Выходная система координат
Система координат, используемая при анализе. Если данный параметр не указан, анализ будет выполнен во входной системе координат. Для Инструменты GeoAnalytics готовые результаты будут храниться в пространственно-временном хранилище данных в системе координат WGS84.
Информация о лицензиях
- Basic: Требуется ArcGIS GeoAnalytics Server
- Standard: Требуется ArcGIS GeoAnalytics Server
- Advanced: Требуется ArcGIS GeoAnalytics Server