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

Улучшение моделей прогнозирования усложнилось вместе с возможностями фиксировать ранее незамеченные корреляции. В этом блоге мы собираемся обсудить модель глубокой авторегрессии (DeepAR), которая является одним из встроенных алгоритмов Amazon Sagemaker.

Amazon SageMaker

Во-первых, позвольте нам получить некоторую информацию об Amazon SageMaker, прежде чем мы перейдем к DeepAR. Каждый разработчик и специалист по обработке данных часами просто устанавливает фреймворки и библиотеки, необходимые для конкретных проектов, но в конечном итоге все равно препирается с менеджером установки. Чтобы устранить эти препятствия на этапах разработки машинного обучения, Amazon Sagemaker не за горами. Amazon SageMaker - это полностью управляемый сервис, который позволяет быстро создавать, обучать и развертывать модели. Это визуальный веб-интерфейс, который упрощает и ускоряет этапы разработки машинного обучения при меньших затратах. Записные книжки Amazon SageMaker - это записные книжки Jupyter в инстансе EC2, предназначенные для работы ваших сред, и коды для проектирования функций для построения модели. Экземпляр портативного компьютера автоматически настраивается с конфигурацией AWS для обеспечения доступа экземпляров портативных компьютеров к другим сервисам AWS.

Экземпляр EC2 можно выбрать и изменить его размер в соответствии с требованиями рабочих мест по разработке функций и обучению. Консоль AWS регистрирует все задания по обучению, и мы можем видеть, где она находится, где находится модель, а также используемый набор данных. SageMaker создает RESTful API независимо от того, где была обучена модель, предварительно обученная модель может размещаться в SageMaker с использованием контейнеров Docker. Amazon поставляется с Amazon SageMaker Studio, который обеспечивает управление экспериментами для удобного просмотра и отслеживания хода выполнения проектов.

DeepAR

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

Набор данных, который мы будем использовать, представляет собой профиль электрической нагрузки Непала, потребленной за 2016 год, записанный с интервалом в час. Это фактический набор данных, взятый из Управления электроэнергетики Непала, где нагрузка выражена в мегаваттах. Поскольку наш набор данных имеет только один временной ряд, мы не будем иметь дело с проблемой «масштаба», но DeepAR также может обрабатывать несколько временных рядов в одной модели, создавая глобальную модель. У него даже есть потенциал для решения проблемы холодного старта, то есть для создания прогнозов для новых временных рядов, которые не имеют исторических временных рядов, но аналогичны тем, на которых он был обучен.

Давайте начнем,

Загрузка набора данных

Найденный набор данных по электроэнергии хранился ежемесячно в формате .csv в соответствии с непальским календарем. После очистки данных и изменения степени детализации на ежечасную предварительно обработанные данные сохраняются в формате рассола. Давайте быстро взглянем на наш набор данных.

Разделение набора данных

При работе с временными рядами разделение набора данных отличается. В отличие от других наборов данных, мы не собираемся делить 80–20, как мы это делали бы.

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

Запись в формате JSON

DeepAR принимает ввод в виде строк JSON: по одному образцу на строку, например

[{‘Start’: ‘2016–04–13 01:00:00’, ‘target’: [682.14, 717.49, 707.64, 706.44, 737.34, 1520.08, 1568.08, ……]}]

Затем формат JSON загружается в корзину s3.

Конфигурация учебного задания

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

Обучение модели

Просто поместите входные данные в оценщик, который мы недавно настроили.

После завершения обучения модели обучения предоставляются различные метрики, такие как RMSE, mean_absolute_QuantileLoss, потери для разных квантилей и т. Д.

Развертывание модели

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

Получение прогнозов

Чтобы получить прогноз, мы отправляем образцы в формате JSON и список квантилей в качестве дополнительной конфигурации. Формат вывода для DeepAR можно найти здесь.

Построение прогнозируемых результатов

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

Заключение

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

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

Я не смог бы написать эту статью без поддержки Аюш Бхаттараи. Спасибо!

Первоначально опубликовано на https://www.gritfeat.com/time-series-forecasting-with-deepar/