Подпись | Описание | Тип данных |
Тип прогнозирования | Задает режим выполнения инструмента. Инструмент может быть запущен для обучения модели только для оценки производительности, прогнозирования объектов или создания поверхности ,
| String |
Входные обучающие объекты | Слой, содержащий параметр Переменная для прогнозирования и независимые переменные обучения из полей. | Table View |
Выходные обученные объекты (Дополнительный) | Имя выходного векторного слоя. | Table;Feature Class |
Переменная для прогнозирования (Дополнительный) | Переменная из параметра Входные обучающие объекты, содержащая значения, используемые для обучения модели. Это поле содержит известные (обучающие) значения переменной, которые будут использованы для прогнозирования в неизвестных местоположениях. | Field |
Рассматривать переменную как Категориальную (Дополнительный) | Указывает, будет ли Переменная для прогнозирования категориальной переменной.
| Boolean |
Независимые переменные (Дополнительный) | Список полей, представляющих независимые переменные, которые помогут прогнозировать значения или категории Переменных для прогнозирования. Включите опцию Категориальная для любых переменных, которые представляют классы или категории (например, почвенно-растительный покров – его наличие или отсутствие). | Value Table |
Входные объекты прогнозирования (Дополнительный) | Векторный слой, представляющий местоположения, где будет выполняться прогнозирование. Этот векторный слой также должен содержать любые независимые переменные, представленные в виде полей, которые соответствуют используемым в обучающих данных. | Table View |
Переменная таблицы важности (Дополнительный) | Таблица будет содержать информацию, описывающую значимость каждой независимой переменной, использованной при создании модели. | Table |
Выходные объекты прогнозирования (Дополнительный) | Выходной класс объектов для получения результатов прогнозирования. | Table;Feature Class |
Сопоставление независимых переменных (Дополнительный) | Список Независимых переменных, заданных во Входных обучающих объектах справа, и соответствующие поля из Входных объектов прогнозирования слева. | Value Table |
Число деревьев (Дополнительный) | Число деревьев для создания модели леса. Увеличение числа деревьев приведет к более точному прогнозированию модели, но модель будет дольше вычисляться. По умолчанию число деревьев равно 100. | Long |
Минимальный размер листа (Дополнительный) | Минимальное число наблюдений, необходимых для сохранения листа (т.е. конечного объекта на дереве, без дальнейшего разбиения). Минимум по умолчанию для регрессии составляет 5, а для классификации – 1. Для очень больших данных увеличение этого числа увеличит время работы инструмента. | Long |
Максимальная глубина дерева (Дополнительный) | Максимальное число разбиений, которые будут сделаны вниз по дереву . При большей максимальной глубине будет создано больше разбиений, что может увеличить вероятность чрезмерной подгонки модели. Значение по умолчанию управляется данными и зависит от числа созданных деревьев и количества включенных переменных. | Long |
Данные, доступные для одного дерева (%) (Дополнительный) | Процент Входных обучающих объектов, используемых для каждого дерева решений. По умолчанию это 100 процентов от данных. Выборка для каждого дерева берется произвольно из двух третей указанных данных. Каждое дерево решений в лесу создается с с использованием случайной выборки или поднабора (примерно две трети) доступных обучающих данных. Понижение процента входных данных для каждого дерева решений увеличит скорость инструмента при работе с очень большими наборами данных. | Long |
Число произвольно выбранных переменных (Дополнительный) | Число независимых переменных, используемых для создания каждого дерева решений. Каждое из деревьев решений в лесу создается с использованием случайного поднабора заданных независимых переменных. Увеличение числа переменных, используемых для создания каждого дерева решений, увеличит вероятность чрезмерной подгонки модели, особенно, если имеется одна или больше доминирующая переменная. Обычно используется квадратный корень от общего числа независимых переменных, если Переменная для прогнозирования является числовой, или разделите общее число независимых переменных на 3, если Переменная для прогнозирования является категорийной. | Long |
Обучающие данные, исключенные из проверки (%) (Дополнительный) | Процент (от 10 до 50) от Входных обучающих объектов, чтобы сохранить их как тестовый набор данных для проверки. Обучение модели будет происходить без этого произвольного поднабора данных, и значения наблюдений для этих объектов будут сравниваться с прогнозируемыми значениями. Значение по умолчанию – 10 процентов. | Long |
Краткая информация
Строит модели и выполняет прогнозирование при помощи адаптации алгоритма произвольного леса, метода контролируемого машинного обучения Лео Бреймана и Адели Калтер. Прогнозы могут быть выполнены для обеих категориальных перемененных (классификация) и непрерывных переменных (регрессия). Независимые переменные могут иметь вид полей в атрибутивной таблице обучающих объектов. В дополнение к проверке производительности модели на основании обучающих данных, по объектам можно выполнять прогнозы.
Использование
Данный инструмент создает сотни деревьев, называемых множеством деревьев решений, чтобы построить модель, которую можно использовать для прогнозирования. Каждое из деревьев решений создается при помощи произвольно получаемых частей исходных (обучающих) данных. Каждое дерево строит собственный прогноз и становится предложением для итогового результата. Алгоритм модели леса рассматривает предложения от всех деревьев решений, чтобы спрогнозировать или классифицировать результат неизвестной выборки. Это важно, поскольку отдельные деревья могут иметь проблемы с чрезмерно близкой подгонкой модели; но объединение нескольких деревьев в лес для прогнозирования решает проблему чрезмерно близкой подгонки, связанную с одним деревом.
Этот инструмент можно использовать в двух режимах. Режим Обучение можно использовать для оценки производительности разных моделей при изучении различных независимых переменных и настроек инструментов. Как только найдена хорошая модель, можно использовать режим Обучение и прогноз.
Входными обучающими объектами могут быть таблицы, точечные, линейные или полигональные объекты. Инструмент не работает с составными объектами.
Пространственные объекты, имеющие одно или более значений null или пустые строковые значения в полях прогноза или в независимых полях, будут исключены из результатов. Если требуется, значения можно изменить с помощью инструмента Вычислить поле.
Этот инструмент производит разнообразные выходные данные, в зависимости от следующих режимов работы:
- Обучение производит следующие два:
- Выходные обучающие объекты - Содержат все Входные обучающие объекты, использованные в создаваемой модели, а также все независимые переменные модели. Также они содержат прогнозы для всех объектов, использованных для обучения модели, что может быть полезно при оценке эффективности созданной модели.
- Итоговые сообщения инструмента - сообщения, которые помогают понять производительность созданной модели. В сообщения входит информация о характеристиках модели, значимости переменных и диагностика проверки.
- Обучение и прогноз производит следующие три:
- Выходные обучающие объекты - Содержат все Входные обучающие объекты, использованные в создаваемой модели, а также все независимые переменные модели. Также они содержат прогнозы для всех объектов, использованных для обучения модели, что может быть полезно при оценке эффективности созданной модели.
- Выходные прогнозируемые объекты - слой результатов прогноза. Прогнозы применяются к слою (используйте опцию Входные объекты прогнозирования), используя модель, сгенерированную из обучающего слоя.
- Итоговые сообщения инструмента - сообщения, которые помогают понять производительность созданной модели. В сообщения входит информация о характеристиках модели, значимости переменных и диагностика проверки.
- Обучение производит следующие два:
Можно использовать параметр Создать таблицу значимости переменных, чтобы создать таблицу для отображения диаграммы значимости переменных для оценки. Верхние 20 значений значимости переменных также показываются в окне сообщений.
Независимые переменные могут поступать из полей и должны содержать разнообразные значения. Если независимая переменная является категориальной, следует включить опцию Категориальная (переменные строкового типа будут отмечены автоматически). Категориальные независимые переменные ограничены 60 уникальными значениями, хотя меньшее количество категорий улучшит производительность модели. Для данного размера данных, чем больше категорий содержит переменная, тем больше вероятность того, что она будет доминировать в модели и приведет к менее эффективным результатам прогнозирования.
При сопоставлении независимых переменных, Поле обучения и Поле прогноза должны быть одного типа (например, поле типа double в Поле обучения должно сопоставляться с полем типа double в Поле прогноза).
Модели на основе леса не выполняют экстраполяцию, они могут только классифицировать или прогнозировать значения, на которых обучалась модель. Обучение модели с помощью обучающих объектов и независимых переменных, которые находятся в пределах диапазона целевых объектов и переменных. Инструмент не сработает, если в независимых переменных прогнозирования, не представленных в обучающих объектах, существуют категории.
Значение по умолчанию для параметра Число деревьев равно 100. Увеличение числа деревьев в модели леса приведет к более точному прогнозированию модели, но модель будет дольше вычисляться.
Поддерживается один слой для обучения и один слой для прогноза. Чтобы совместить несколько наборов данных в один, используйте инструменты Построить сетку нескольких переменных и Обогатить из сетки нескольких переменных для получения входных данных.
Этот инструмент геообработки работает на Spark. Анализ выполняется на настольном компьютере с использованием параллельно работающих ядер. Чтобы узнать больше о выполнении анализа см. раздел Информация по инструментами GeoAnalytics Desktop.
При запуске инструментов GeoAnalytics Desktop аналитика выполняется на настольном компьютере. Для оптимальной производительности, данные должны быть доступны на настольном ПК. Если используется размещенный векторный слой, рекомендуется применить ArcGIS GeoAnalytics Server. Если данные не являются локальными, инструмент будет работать дольше. Чтобы использовать ArcGIS GeoAnalytics Server для выполнения анализа, см. GeoAnalytics Tools.
Параметры
arcpy.geoanalytics.Forest(prediction_type, in_features, {output_trained_features}, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {features_to_predict}, {variable_of_importance}, {output_predicted}, {explanatory_variable_matching}, {number_of_trees}, {minimum_leaf_size}, {maximum_tree_depth}, {sample_size}, {random_variables}, {percentage_for_validation})
Имя | Описание | Тип данных |
prediction_type | Задает режим выполнения инструмента. Инструмент может быть запущен для обучения модели только для оценки производительности, прогнозирования объектов или создания поверхности ,
| String |
in_features | Класс объектов, содержащий параметр variable_predict и независимые переменные обучения из полей. | Table View |
output_trained_features (Дополнительный) | Имя выходного векторного слоя. | Table;Feature Class |
variable_predict (Дополнительный) | Переменная из параметра in_features, содержащая значения, используемые для обучения модели. Это поле содержит известные (обучающие) значения переменной, которые будут использованы для прогнозирования в неизвестных местоположениях. | Field |
treat_variable_as_categorical (Дополнительный) |
| Boolean |
explanatory_variables [[Variable, Categorical],...] (Дополнительный) | Список полей, представляющих независимые переменные, которые помогут прогнозировать значения или категории variable_predict. Используйте параметр treat_variable_as_categorical для любых переменных, которые представляют классы или категории (например, почвенно-растительный покров – его наличие или отсутствие). Укажите переменную true для всего, что представляет классы или категории, например, наличие или отсутствие почвенно-растительного покрова, и false, если переменная является непрерывной. | Value Table |
features_to_predict (Дополнительный) | Векторный слой, представляющий местоположения, где будет выполняться прогнозирование. Этот векторный слой также должен содержать любые независимые переменные, представленные в виде полей, которые соответствуют используемым в обучающих данных. | Table View |
variable_of_importance (Дополнительный) | Таблица будет содержать информацию, описывающую значимость каждой независимой переменной, использованной при создании модели. | Table |
output_predicted (Дополнительный) | Выходной класс объектов для получения результатов прогнозирования. | Table;Feature Class |
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 |
Пример кода
Пример скрипта в окне Python для использования функции Forest.
В этом скрипте запускается функция Forest для данных по продажам за 1980 год и прогнозируются продажи в 1981 году.
#-------------------------------------------------------------------------------
# Name: Forest.py
# Description: Run Forest on sales data from 1980 and predict for sales in 1981
#
# Requirements: Advanced License
# Import system modules
import arcpy
arcpy.env.workspace = "c:/data/commercial.gdb"
# Set local variables
trainingDataset = "sales"
predictionDataset = "next_year"
outputName = "training"
outputPredictedName = "predicted"
# Run 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, None, None, 120, None, 10)