Обучение модели прогнозирования временных рядов (GeoAI)

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

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

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

Этот инструмент обучает модели прогнозирования временных рядов с использованием различных моделей на основе глубокого обучения, таких как полностью соединенная сеть (FCN), долговременная краткосрочная память (LSTM), InceptionTime, ResNet и ResCNN. Эти модели поддерживают многомерные временные ряды, в которых модель учится более чем на одной переменной, зависящей от времени, для прогнозирования будущих значений. Обученная модель сохраняется как файл пакета глубокого обучения (.dlpk) и может быть использована для прогнозирования будущих значения с помощью инструмента Прогнозирование с использованием модели временных рядов.

Подробнее о том, как работают Модели прогнозирования временных рядов

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

  • Вы должны установить соответствующую среду глубокого обучения для Python в ArcGIS Pro.

    Узнайте, как установить среду глубокого обучения для ArcGIS

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

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

  • Чтобы запустить этот инструмент с помощью графического процессора, установите для параметра Тип процессора значение GPU. Если у вас более одного графического процессора, вместо этого задайте параметр среды GPU ID.

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

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

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

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

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

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

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

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

  • Важным моментом является принятие решения о том, сколько временных шагов следует исключить при проверке. Чем больше временных рядов будет исключено, тем меньше временных рядов будет для оценки RMSE проверки. Если исключить слишком мало временных рядов, среднеквадратическая ошибка проверки будет оцениваться с использованием небольшого количества данных и может вводить в заблуждение. Исключите как можно больше временных рядов, сохраняя при этом достаточное количество временных рядов для оценки RMSE проверки. Отложите для проверки как минимум столько временных рядов, сколько вы собираетесь прогнозировать, если в кубе пространство-время достаточно временных рядов для этого.

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

Параметры

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

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

File
Выходная модель

Расположение выходной папки, в которой будет храниться обученная модель. Обученная модель будет сохранена как файл пакета глубокого обучения (.dlpk).

Folder
Переменная анализа

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

String
Длина последовательности

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

  • Если параметр Многошаговый не отмечен, то значение этого параметра должно быть меньше или равно общему количеству входных временных шагов, оставшихся после исключения значения параметра Число временных шагов, исключаемых для проверки.
  • Если параметр Multi-Step не отмечен, то 1,5-кратное значение Длина последовательности должно быть меньше или равно общему количеству временных шагов после исключения значения параметра Число временных шагов, исключаемых для проверки.

Long
Независимые переменные обучения
(Дополнительный)

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

Value Table
Максимальное число периодов времени
(Дополнительный)

Максимальное количество периодов времени, для которых будет обучаться модель. Значение по умолчанию равно 20.

Long
Количество временных рядов, исключаемых для проверки
(Дополнительный)

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

  • Если параметр Многошаговый не отмечен, то значение этого параметра должно составлять менее 25 процентов от общего числа записей во входном пространственно-временном кубе.
  • Если отмечен параметр Многошаговый, то значение этого параметра должно быть меньше или равно половине значения параметра Длина последовательности.

Long
Тип модели
(Дополнительный)

Определяет архитектуру модели, которая будет использоваться для обучения модели.

  • InceptionTimeАрхитектура InceptionTime, которая будет использоваться для обучения модели. Это значение по умолчанию
  • ResNetАрхитектура ResNet, которая будет использоваться для обучения модели.
  • ResCNNАрхитектура ResCNN, которая будет использоваться для обучения модели.
  • FCNАрхитектура FCN, которая будет использоваться для обучения модели.
  • LSTMАрхитектура LSTM, которая будет использоваться для обучения модели.
  • TimeSeriesTransformerАрхитектура TimeSeriesTransformer, которая будет использоваться для обучения модели.
String
Размер пакета
(Дополнительный)

Количество выборок, которые будут обрабатываться за один раз. Значение по умолчанию - 64.

В зависимости от графического процессора компьютера это число может быть изменено на 8, 16, 32, 64 и так далее.

Long
Аргументы модели
(Дополнительный)

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

Value Table
Остановка обучения, если модель более не улучшается.
(Дополнительный)

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

  • Отмечено - обучение модели остановится, если потеря проверки не зарегистрирует улучшение после пяти последовательных эпох. Это значение по умолчанию
  • Не отмечено - обучение модели будет продолжено, пока не будет достигнуто максимально возможное число эпох.

Boolean
Выходной класс объектов
(Дополнительный)

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

Feature Class
Выходной куб
(Дополнительный)

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

File
Многошаговый
(Дополнительный)

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

  • Отмечено - Модель обучения будет использовать многошаговый подход.
  • Не отмечено - Модель обучения будет использовать традиционный одношаговый подход. Это значение по умолчанию

Boolean

arcpy.geoai.TrainTimeSeriesForecastingModel(in_cube, out_model, analysis_variable, sequence_length, {explanatory_variables}, {max_epochs}, {validation_timesteps}, {model_type}, {batch_size}, {arguments}, {early_stopping}, {out_features}, {out_cube}, {multistep})
ИмяОписаниеТип данных
in_cube

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

File
out_model

Расположение выходной папки, в которой будет храниться обученная модель. Обученная модель будет сохранена как файл пакета глубокого обучения (.dlpk).

Folder
analysis_variable

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

String
sequence_length

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

  • Если значение параметра multistep равно False, значение этого параметра должно быть меньше или равно общему числу входных временных шагов, оставшихся после исключения значения параметра validation_timesteps.
  • Если значение параметра multistep равно True, 1,5-кратное значение sequence_length должно быть меньше или равно общему количеству временных шагов после исключения значения параметра validation_timesteps.

Long
explanatory_variables
[explanatory_variables,...]
(Дополнительный)

Независимые переменные от данных, которые будут использоваться для обучения модели. Используйте значение True после любых переменных, которые представляют классы или категории.

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

Максимальное количество периодов времени, для которых будет обучаться модель. Значение по умолчанию равно 20.

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

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

  • Если значением параметра multistep является False, то значение этого параметра должно составлять менее 25 процентов от общего числа записей во входном пространственно-временном кубе.
  • Если значением параметра multistep является True, то значение этого параметра должно быть меньше или равно половине значения параметра sequence_length.

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

Определяет архитектуру модели, которая будет использоваться для обучения модели.

  • InceptionTimeАрхитектура InceptionTime, которая будет использоваться для обучения модели. Это значение по умолчанию
  • ResNetАрхитектура ResNet, которая будет использоваться для обучения модели.
  • ResCNNАрхитектура ResCNN, которая будет использоваться для обучения модели.
  • FCNАрхитектура FCN, которая будет использоваться для обучения модели.
  • LSTMАрхитектура LSTM, которая будет использоваться для обучения модели.
  • TimeSeriesTransformerАрхитектура TimeSeriesTransformer, которая будет использоваться для обучения модели.
String
batch_size
(Дополнительный)

Количество выборок, которые будут обрабатываться за один раз. Значение по умолчанию - 64.

В зависимости от графического процессора компьютера это число может быть изменено на 8, 16, 32, 64 и так далее.

Long
arguments
[arguments,...]
(Дополнительный)

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

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

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

  • TRUEОбучение модели остановится, если потеря проверки не зарегистрирует улучшение после пяти последовательных эпох. Это значение по умолчанию
  • FALSEОбучение модели будет продолжено, пока не будет достигнуто максимально возможное число эпох.
Boolean
out_features
(Дополнительный)

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

Feature Class
out_cube
(Дополнительный)

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

File
multistep
(Дополнительный)

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

  • TRUEМодель обучения будет использовать многошаговый подход.
  • FALSEМодель обучения будет использовать традиционный одношаговый подход. Это значение по умолчанию
Boolean

Пример кода

TrainTimeSeriesForecastingModel, пример (автономный скрипт)

Это пример использования функции TrainTimeSeriesForecastingModel.

# Name: TrainTimeSeriesForecastingModel.py
# Description: Train a time series model on space-time cube data with
# different AI models.
  
# Import system modules                                                                                                                                                                                                                                                                                                                    
import arcpy
import os

# Set local variables
datapath  = "path_to_data_for_forecasting" 
out_path = "path_to_gdb_for_forecasting"

model_path = os.path.join(out_path, "model")
in_cube = os.path.join(datapath, "test_data")
out_features = os.path.join(out_path, "forecasted_feature.gdb", "forecasted")

# Run TrainTimeSeriesForecastingModel
arcpy.geoai.TrainTimeSeriesForecastingModel(
        in_cube,
        model_path,
        "CONSUMPTION",
        12,
        None,
        20,
        2,
        "InceptionTime",
        64,
        None,
        True,
        out_features
    )

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

  • Basic: Нет
  • Standard: Нет
  • Advanced: Да

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