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

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

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

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

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

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

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

  • Этот инструмент не поддерживает входные значения, содержащие поля только даты или только времени. Удалите поля только даты или только времени запуском анализа.

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

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

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

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

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

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

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

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

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

  • Этот инструмент геообработки работает от Spark. Анализ выполняется на настольном компьютере с использованием нескольких ядер параллельно. См. Информация по инструментами GeoAnalytics Desktop, чтобы узнать больше о выполнении анализа.

  • При запуске инструментов GeoAnalytics Desktop анализ выполняется на настольном компьютере. Для оптимальной производительности данные должны быть доступны на настольном компьютере. Если используется размещенный векторный слой, рекомендуется применить ArcGIS GeoAnalytics Server. Если данные находятся не на жестком диске, для запуска инструмента потребуется больше времени. Чтобы использовать ArcGIS GeoAnalytics Server для выполнения анализа, см. GeoAnalytics Tools.

Параметры

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

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

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

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

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

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

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

Table View
output_trained_features
(Дополнительный)

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

Table;Feature Class
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
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

Пример кода

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

Пример скрипта в окне 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)