В этом посте основное внимание будет уделено службам прогнозирования, предлагаемым Amazon Web Service, которые называются AWS Forecast. Компании проводят прогнозы результатов бизнеса уже долгое время, начиная от прогноза финансового рынка и заканчивая прогнозом спроса на розничную продукцию. Ранее статистические методы и расширенная математика использовались для прогнозирования будущих результатов, однако с развитием машинного обучения и доступностью больших данных мы можем использовать методы глубокого обучения для точных прогнозов.

Введение

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

AWS Forecast — это управляемый сервис, который предоставляет пользователям платформу для прогнозирования их данных без необходимости поддерживать сложную инфраструктуру машинного обучения. Он основан на алгоритме DeepAR+, который представляет собой контролируемый алгоритм прогнозирования одномерных временных рядов с использованием рекуррентных нейронных сетей. Он включает в себя наборы данных, которые используются для обучения предикторов и создания прогнозов.

Как это работает?

Это состоит из,

Набор данных и группы наборов данных

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

  • В каждой группе наборов данных может быть три набора данных, по одному каждого типа:

* целевой временной ряд (обязательно)

* связанные временные ряды (необязательно)

* метаданные элемента (необязательно) — используются только при использовании алгоритма DeepAR+

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

* `timestamp` (должно быть типа timestamp)

* `item_id` (должен быть строкового типа)

* Тип данных всех остальных столбцов должен быть строковым.

  • Целевой временной ряд также должен содержать столбец target_value, который является столбцом, который вы планируете прогнозировать.

Предикторы

  • Он создает обученную модель, которая называется предикторы.
  • Пользователи выбирают Горизонт прогноза, который указывает, насколько далеко вы хотите прогнозировать.
  • Можно выбрать алгоритм вручную или выбрать функцию AutoML для автоматического выбора алгоритма.
  • Есть несколько дополнительных функций для точной настройки прогнозов.

Прогнозы

  • Мы можем создать прогноз на основе предиктора, созданного выше.
  • Вы можете выбрать до 5 значений квантилей, включая среднее значение. Вы можете выбрать в зависимости от потребностей вашего бизнеса, которые могут быть как заниженными, так и завышенными. Например, квантиль 0,05 означает, что ожидается, что истинные данные будут ниже прогнозируемых данных в 5% случаев. Если мы возьмем пример прогнозирования пандемии и количества случаев, мы бы хотели, чтобы квантиль был равен 0,99 для прогнозирования больничной койки, потому что мы не хотим недооценивать ресурсы в этом сценарии.

Поиск прогноза

  • Мы можем выполнить поиск в самой консоли, как показано на следующем снимке экрана.

Функции

  • Автоматически определяет ключевые атрибуты для прогнозирования.
  • Ручной выбор алгоритма: DeepAR+, ARIMA, Prophet, экспоненциальное сглаживание (ETS), непараметрический временной ряд (NPTS). Подробный список можно найти здесь.
  • Предоставьте опцию AutoML для обучения модели, которая автоматизирует сложные задачи (выбор алгоритма, настройка гиперпараметров и т. д.).
  • Автоматически заполнять пропущенные значения для целевых и связанных временных рядов.

вариант использования

Ниже приведены некоторые варианты использования AWS Forecast:

  • Оценка спроса на продукцию.
  • Прогнозирование погоды.
  • Прогнозирование веб-трафика.
  • Оценка случаев пандемии.

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

Прогноз можно использовать через AWS cli, консоль или SDK. Выше мы видели, как можно выполнять прогноз из консоли. Здесь мы увидим, как мы можем использовать sdk для выполнения прогнозной работы.

Ввод

Мы будем использовать данные о случаях covid19, доступные на kaggle.

Ниже приведен снимок экрана с примерами данных.

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

Процесс

Следующие шаги описывают прогнозирование с использованием python sdk.

  1. Инициализация клиента прогнозов AWS
  2. Создавая группу набора данных, мы создадим группу набора данных с именем covid19_week5.
  3. Создание набора данных целевого временного ряда
  4. Импортируйте данные в набор данных, мы будем импортировать данные из корзины s3 в набор данных, который должен соответствовать его схеме. И роль должна иметь разрешение объекта на ведро.
  5. Связать набор данных с группой наборов данных
  6. Создание предиктора
  7. Создание прогноза
  8. Экспорт данных прогноза в корзину S3

Нижеследующая суть описывает вышеуказанные шаги.

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

Вывод

Мы можем напрямую посмотреть прогноз в консоли, как показано ниже. Как видите, прогноз был сгенерирован для нашего предоставленного квантиля.

На выходе получаются CSV-файлы, которые можно экспортировать в корзину s3 и затем использовать.

Чтобы получить чистый скрипт, можно перейти по сниппету здесь.

Выводы

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

Цены

  • Без предоплаты
  • Прогноз оплачивается в единицах 1000

Бесплатный уровень:

  • Создание прогнозов — до 10 000 прогнозов временных рядов в месяц в течение первых 2 месяцев.
  • Хранение данных — до 10 в месяц в течение первых 2 месяцев
  • Часы обучения — до 10 часов в месяц в течение первых 2 месяцев.

По требованию:

  • Создание прогнозов — 0,60 доллара за 1000 прогнозов.
  • Хранение данных — 0,088 доллара США за ГБ
  • Учебные часы — $0,24 в час
  • Подробный пример ценообразования можно найти и на странице цен Amazon Forecast.

Библиография