Каждому бизнесу нужна способность точно предсказывать будущее, чтобы принимать лучшие решения и давать компании конкурентное преимущество. Имея исторические данные, предприятия могут понимать тенденции, делать прогнозы того, что и когда может произойти, и включать эту информацию в свои планы на будущее, от спроса на продукцию до планирования запасов и кадрового обеспечения. Если прогноз слишком высок, компании могут чрезмерно инвестировать в продукты и персонал, что приводит к напрасным инвестициям. Если прогноз слишком низкий, компании могут недоинвестировать, что приводит к нехватке сырья и запасов, что ухудшает качество обслуживания клиентов.
Прогнозирование временных рядов — это метод, который предсказывает будущие данные временных рядов на основе исторических данных. Прогнозирование временных рядов полезно во многих областях, включая розничную торговлю, финансы, логистику и здравоохранение. Прогнозирование спроса использует исторические данные временных рядов, чтобы делать будущие оценки в отношении спроса клиентов за определенный период и оптимизировать процесс принятия решений о спросе и предложении в разных компаниях. Варианты использования прогнозирования спроса включают прогнозирование продаж билетов в транспортной отрасли, цен на акции, количества посещений больниц, количества представителей клиентов, которых необходимо нанять в нескольких местах в следующем месяце, продаж продуктов в нескольких регионах в следующем квартале, использование облачных серверов для на следующий день для службы потокового видео, потребление электроэнергии в нескольких регионах в течение следующей недели, количество устройств и датчиков IoT, таких как потребление энергии, и многое другое.
Данные временных рядов классифицируются как одномерный и многовариантный. Например, общее потребление электроэнергии для одного домохозяйства представляет собой одномерный временной ряд за определенный период времени. Когда несколько одномерных временных рядов накладываются друг на друга, это называется многомерным временным рядом. Например, общее потребление электроэнергии 10 разными (но коррелированными) домохозяйствами в одном районе составляет многовариантный набор данных временного ряда.
Традиционные подходы к прогнозированию временных рядов включают: авторегрессионная интегрированная скользящая средняя (ARIMA) для одномерных данных временных рядов и векторная авторегрессия (VAR) для многомерных данных временных рядов. Эти методы часто требуют утомительной предварительной обработки данных и генерации признаков перед обучением модели. Эти проблемы решаются с помощью методов глубокого обучения (DL) путем автоматизации этапа создания признаков до обучения модели, например, путем включения различных нормализации данных, задержек, различных временных масштабов, некоторых категориальных данных, обработки пропущенных значений и т. д. с лучшим прогнозированием. мощное и быстрое обучение и развертывание с поддержкой графического процессора.
В этом посте мы покажем вам, как развернуть решение для прогнозирования спроса, используя Amazon SageMaker JumpStart. Мы познакомим вас с комплексным решением задачи прогнозирования спроса с использованием трех современных алгоритмов временных рядов: ЛСТНет, Пророки SageMaker DeepAR, которые доступны в ГлюонТС и Создатель мудреца Амазонки. Входные данные представляют собой многовариантный временной ряд, включающий почасовые потребление электроэнергии из 321 пользователя с 2012 по 2014 год. Затем каждый алгоритм использует исторические многомерные и коррелированные данные временных рядов для обучения и получения точных прогнозов (многомерных значений) в течение интервала прогнозирования. Для каждого из алгоритмов временных рядов у нас есть два выхода: обученная модель на почасовом данные о потреблении электроэнергии и конечная точка SageMaker, которая может прогнозировать будущие (многомерные) значения с учетом интервала прогнозирования.
В качестве альтернативы, если вы ищете полностью управляемый сервис для предоставления высокоточных прогнозов без написания кода, мы рекомендуем проверить Прогноз Амазонки. Amazon Forecast — это сервис прогнозирования временных рядов, основанный на машинном обучении (ML) и созданный для анализа бизнес-показателей. Основанная на той же технологии, что и Amazon.com, Amazon Forecast использует машинное обучение для объединения данных временных рядов с дополнительными переменными для построения прогнозов.
Обзор решения
На следующей диаграмме показана архитектура сквозного процесса обучения и развертывания.
Рабочий процесс решения выглядит следующим образом:
- Исходные данные для обучения находятся в Простой сервис хранения Amazon (Amazon S3) ведро.
- Предоставленный Блокнот SageMaker получает входные данные и запускает следующие шаги.
- Для каждого из ЛСТНет, Пророки SageMaker DeepAR алгоритмы, обучать модель и оценивать ее результаты с помощью SageMaker.
- Разверните обученную модель и создайте конечную точку SageMaker, которая Конечная точка HTTPS который способен давать прогнозы.
- Отслеживайте обучение и развертывание модели с помощью Amazon CloudWatch.
- Входные данные для логического вывода находятся в корзине S3. Из записной книжки SageMaker отправьте запросы на конечную точку SageMaker и сделайте прогнозы.
Предпосылки
Чтобы опробовать решение в своей учетной записи, убедитесь, что у вас есть следующее:
- Учетная запись AWS для использования этого решения. Если у вас нет учетной записи, вы можете подписаться на один.
- Решение, описанное в этом посте, является частью Amazon SageMaker JumpStart. Чтобы запустить это решение JumpStart 1P и развернуть инфраструктуру в своей учетной записи AWS, необходимо создать активную учетную запись. Студия Amazon SageMaker экземпляр (см. Подключение к домену Amazon SageMaker).
Когда экземпляр Studio будет готов, вы можете запустить Studio и получить доступ к JumpStart. Функции JumpStart недоступны в экземплярах блокнота SageMaker, и вы не можете получить к ним доступ через SageMaker API или Интерфейс командной строки AWS (Интерфейс командной строки AWS).
Запустить решение
Чтобы запустить решение, выполните следующие действия:
- Откройте JumpStart с помощью программы запуска JumpStart в Свяжитесь с нами! или выбрав значок JumpStart на левой боковой панели.
- В Решения раздел, выбрать Прогнозирование спроса чтобы открыть решение на другой вкладке Studio.
- На вкладке «Прогнозирование спроса» выберите «Запустить», чтобы развернуть ресурсы решения.
- Откроется еще одна вкладка, показывающая состояние развертывания и сгенерированные артефакты. По завершении развертывания появится кнопка «Открыть блокнот». Выбирать Открыть блокнот чтобы открыть блокнот решений в Studio.
В следующих разделах мы познакомим вас с шагами решения для глубокого прогнозирования спроса.
Подготовка и визуализация данных
Набор данных, который мы используем здесь, представляет собой многомерный временной ряд. потребление электроэнергии данные взяты из Dua, D. и Graff, C. (2019). UCI Хранилище Машинного Обучения, Ирвин, Калифорния: Калифорнийский университет, Школа информационных и компьютерных наук. Мы используем очищенную версию данных, содержащую 321 временной ряд с периодичностью в 1 час, начиная с 1 января 2012 г., с 26,304 XNUMX временными шагами. Мы также предоставили обменный курс dataset на случай, если вы захотите попробовать и другие наборы данных.
Мы предоставили утилиты для создания фрейма данных из обучающих и тестовых данных. Обучающие данные включают значения почасового потребления электроэнергии (для 321 домохозяйства) с 2012 01:01:00 до 00 00:2014:05, а тестовые данные содержат значения с 26. :19:00 до 00-2012-01 01:00:00 (еще 00 дней почасовых данных по сравнению с данными обучения). Чтобы обучить модель прогнозирования временных рядов, CONTEXT_LENGTH
определяет длину каждого входного временного ряда, а PREDICTION_LENGTH определяет длину каждого выходного временного ряда.
Потому что CONTEXT_LENGTH
и PREDICTION_LENGTH
установлены на 168 (7 дней) и 24 (следующий 1 день), мы отображаем последние 7 дней данных обучения и последующий 1 день данных тестирования для демонстрационных целей. Нанесенные на график данные обучения и данные тестирования относятся к 2014-05-19 20:00:00 по 2014-05-26 19:00:00 и с 2014-05-26 20:00:00 по 2014-05-27 02 :00:00 соответственно. В демонстрационных целях мы наносим на график только 11 временных рядов из 321, как показано на следующем рисунке.
Обучите модели
В этом разделе демонстрируется обучение ЛСТНет модель с использованием ГлюонТС, чтобы Пророк модель с использованием ГлюонТСИ SageMaker DeepAR модель с оптимизацией гиперпараметров (HPO) и без нее. Для каждого из них мы сначала обучали модель без HPO, а затем обучали модель с HPO. Мы демонстрируем, как производительность модели увеличивается с HPO, показывая метрики сравнения, а именно RRSE (относительно квадратичная ошибка), MAPE (средняя абсолютная ошибка в процентах) и sMAPE (симметричная средняя абсолютная ошибка в процентах). Для HPO мы используем RRSE в качестве метрики оценки для всех трех алгоритмов.
Обучите оптимальную модель LSTNet с помощью GluonTS
LSTNet — это модель глубокого обучения, которая включает традиционные авторегрессионные линейные модели параллельно с частью нелинейной нейронной сети, что делает нелинейную модель глубокого обучения более надежной для временных рядов, которые нарушают изменения масштаба. Для получения информации о математике LSTNet см. Моделирование долгосрочных и краткосрочных временных паттернов с помощью глубоких нейронных сетей.
Сначала мы обучаем модель LSTNet без HPO. После определения гиперпараметров мы можем запустить задание обучения. Мы используем ГлюонТС с MXNet в качестве внутренней среды глубокого обучения для определения и обучения нашей модели LSTNet. SageMaker делает это с помощью оценщиков фреймворков, в которых уже настроены фреймворки глубокого обучения. Здесь мы создаем оценщик SageMaker MXNet и передаем сценарий обучения нашей модели, гиперпараметры, а также количество и тип экземпляров обучения, которые нам нужны.
Затем мы обучаем оптимальную модель LSTNet с помощью HPO и дополнительно улучшаем производительность модели с помощью SageMaker автоматическая настройка модели. Автоматическая настройка модели SageMaker, также известная как настройка гиперпараметров, находит наилучшую версию модели, выполняя множество обучающих заданий в вашем наборе данных с использованием указанного вами алгоритма и диапазонов гиперпараметров. Затем он выбирает значения гиперпараметров, которые приводят к модели, которая работает лучше всего, как измеряется выбранной вами метрикой. Лучшая модель и соответствующие ей гиперпараметры выбираются на основе данных проверки с 2014-05-26 20:00:00 до 2014-06-01 19:00:00 (соответствует 6 дням). Затем мы развертываем лучшую модель в конечной точке, которую мы можем запросить для прогнозирования. Наконец, лучшая модель оценивается на основе данных теста удержания с 2014 06:01:20 до 00 00:2014:06 (соответствует следующему 02 дню). В следующей таблице сравниваются характеристики моделей.
Метрика | LSTNet без HPO | LSTNet с HPO |
РРСЭ | 0.555 | 0.506 |
MAPE | 0.318 | 0.301 |
СМАПЕ | 0.337 | 0.323 |
Время обучения (минуты) | 10.780 | 57.242 |
Время вывода (секунды) | 5.202 | 5.340 |
За исключением времени обучения и вывода, для RRSE, MAPE и sMAPE меньшие значения указывают на лучшую прогностическую эффективность. Таким образом, мы можем наблюдать, что производительность модели, обученной с HPO, значительно выше, чем у модели, обученной без HPO.
Обучите оптимальную модель пророка, используя GluonTS с HPO
Пророк — это алгоритм прогнозирования данных временных рядов на основе аддитивной модели, в которой нелинейные тренды соответствуют годовой, еженедельной и ежедневной сезонности, а также праздничным эффектам. Он лучше всего работает с временными рядами, которые имеют сильные сезонные эффекты и несколько сезонов исторических данных. Пророк устойчив к отсутствующим данным и сдвигам в тренде и обычно хорошо справляется с выбросами. Для реализации алгоритма Prophet мы используем ГлюонТС версия, представляющая собой тонкую оболочку для вызова ФБпророк упаковка. Во-первых, мы обучаем модель Prophet без HPO с помощью SageMaker Estimator. Затем мы обучаем оптимальную модель пророка с помощью with Автоматическая настройка модели SageMaker (HPO) и дальнейшего улучшения производительности модели.
Метрика | Пророк без HPO | Пророк с HPO |
РРСЭ | 0.183 | 0.147 |
MAPE | 0.288 | 0.278 |
СМАПЕ | 0.278 | 0.289 |
Время обучения (минуты) | – | 45.633 |
Время вывода (секунды) | 44.813 | 45.327 |
Значения метрик с настройкой HPO меньше, чем без настройки HPO на тех же тестовых данных. Это указывает на то, что настройка HPO дополнительно улучшает производительность модели.
Обучите оптимальную модель SageMaker DeepAR с помощью HPO
Алгоритм прогнозирования SageMaker DeepAR — это алгоритм обучения с учителем для прогнозирования скалярных (одномерных) временных рядов с использованием рекуррентных нейронных сетей (RNN). Классические методы прогнозирования, такие как авторегрессионное интегрированное скользящее среднее (ARIMA) или экспоненциальное сглаживание (ETS), подгоняют одну модель к каждому отдельному временному ряду. Затем они используют эту модель для экстраполяции временных рядов в будущее.
Однако во многих приложениях у вас есть много похожих временных рядов в наборе единиц поперечного сечения. Например, у вас могут быть группировки временных рядов для спроса на различные продукты, нагрузки на сервер и запросы на веб-страницы. Для этого типа приложений вы можете извлечь выгоду из обучения одной модели совместно по всем временным рядам. DeepAR использует этот подход. Когда ваш набор данных содержит сотни связанных временных рядов, DeepAR превосходит стандартные методы ARIMA и ETS. Вы также можете использовать обученную модель для создания прогнозов для новых временных рядов, аналогичных тем, на которых она была обучена. Для получения информации о математике, лежащей в основе DeepAR, см. DeepAR: вероятностное прогнозирование с авторегрессионными рекуррентными сетями.
Как и в предыдущих моделях, мы сначала обучаем модель DeepAR без HPO. Затем мы обучаем оптимальную модель DeepAR с помощью HPO. Затем мы развертываем лучшую модель в конечной точке, которую мы можем запросить для прогнозирования. В следующей таблице сравниваются характеристики моделей.
Метрика | DeepAR без HPO | DeepAR с HPO |
РРСЭ | 0.136 | 0.098 |
MAPE | 0.087 | 0.099 |
СМАПЕ | 0.104 | 0.116 |
Время обучения (минуты) | 24.048 | 210.530 |
Время вывода (секунды) | 68.411 | 72.829 |
Значения метрик с настройкой HPO меньше, чем без настройки HPO на тех же тестовых данных. Это указывает на то, что настройка HPO дополнительно улучшает производительность модели.
Оцените производительность модели всех трех алгоритмов на одних и тех же контрольных данных.
В этом разделе мы сравниваем производительность модели трех моделей, обученных в HPO. На основе входных данных сравнения могут различаться для разных наборов входных данных. В следующей таблице сравниваются три алгоритма для выборки входных данных по электроэнергии, использованных в этом посте.
Метрика | LSTNet с HPO | Пророк с HPO | DeepAR с HPO |
РРСЭ | 0.506 | 0.147 | 0.098 |
MAPE | 0.302 | 0.278 | 0.099 |
СМАПЕ | 0.323 | 0.289 | 0.116 |
Время обучения (минуты) | 57.242 | 45.633 | 210.530 |
Время вывода (секунды) | 5.340 | 45.327 | 72.829 |
Следующие рисунки визуализируют эти результаты.
На следующем рисунке показан еще один способ визуализации результатов.
Данные обучения и испытаний (наземная правда) показаны на графике черной сплошной линией (разделенной красной вертикальной линией). Прогнозы различных алгоритмов прогнозирования показаны пунктирными линиями. Чем ближе пунктирная линия подходит к черной сплошной линии, тем точнее прогнозы.
Убирать
Когда вы закончите с этим решением, убедитесь, что вы удалили все ненужные ресурсы AWS, чтобы избежать непреднамеренных расходов. Блокнот решений содержит код очистки. На вкладке решения вы также можете выбрать Удалить все ресурсы в Удалить решение .
Заключение
В этом посте мы представили комплексное решение задачи прогнозирования спроса с использованием трех современных алгоритмов временных рядов: LSTNet, Prophet и SageMaker DeepAR, которые доступны в GluonTS и SageMaker. Мы обсудили три подхода к обучению: обучение оптимальной модели LSTNet с использованием GluonTS, обучение оптимальной модели Prophet с использованием GluonTS и обучение оптимальной модели SageMaker DeepAR с HPO. Для каждого из них мы сначала обучали модель без HPO, а затем обучали модель с HPO. Мы продемонстрировали, как производительность модели увеличивается с HPO, сравнивая показатели, а именно RRSE, MAPE и sMAPE.
В этом посте мы использовали данные об электричестве в качестве входного набора данных. Однако вы можете изменить входные данные и перенести свои данные в корзину S3. Вы можете использовать эти данные для обучения моделей и получения различных результатов производительности и соответственно выбрать лучший алгоритм.
На консоли SageMaker откройте Studio и запустите решение в JumpStart, чтобы начать работу, или вы можете проверить решение Репозиторий GitHub для просмотра кода и получения дополнительной информации.
Об авторах
Алак Эсварадасс является старшим архитектором решений в AWS в Чикаго, штат Иллинойс. Она увлечена тем, что помогает клиентам разрабатывать облачные архитектуры с использованием сервисов AWS для решения бизнес-задач. Она имеет степень магистра в области вычислительной техники. До прихода в AWS она работала в различных организациях здравоохранения и имеет обширный опыт проектирования сложных систем, технологических инноваций и исследований. Она тусуется со своими дочерьми и исследует природу в свободное время.
Доктор Синь Хуан — научный сотрудник Amazon SageMaker JumpStart и встроенных алгоритмов Amazon SageMaker. Он занимается разработкой масштабируемых алгоритмов машинного обучения. Его исследовательские интересы лежат в области обработки естественного языка, объяснимого глубокого обучения на табличных данных и надежного анализа непараметрической пространственно-временной кластеризации.
- "
- 10
- 100
- 11
- 2019
- 7
- a
- способность
- О нас
- Absolute
- доступ
- соответственно
- Учетная запись
- точный
- через
- активный
- дополнительный
- плюс
- алгоритм
- алгоритмы
- Все
- уже
- Amazon
- анализ
- Другой
- API
- Применение
- Приложения
- прикладной
- подхода
- подходы
- архитектура
- ПЛОЩАДЬ
- Автоматический
- Автоматизация
- доступен
- в среднем
- AWS
- до
- за
- польза
- ЛУЧШЕЕ
- Лучшая
- Черный
- булавка
- граница
- приносить
- строить
- встроенный
- бизнес
- бизнес
- Калифорния
- способный
- случаев
- случаев
- проблемы
- изменение
- расходы
- контроль
- Чикаго
- Выберите
- ближе
- облако
- код
- Компании
- Компания
- сравненный
- конкурентоспособный
- полный
- комплекс
- компьютер
- Информатика
- Консоли
- потребление
- содержит
- соответствующий
- может
- Создайте
- Создающий
- клиент
- опыт работы с клиентами
- Клиенты
- ежедневно
- Dash
- данным
- день
- Дней
- занимавшийся
- решения
- глубоко
- Спрос
- демонстрировать
- убивают
- развертывание
- развертывание
- Проект
- развивающийся
- Устройства
- различный
- каждый
- эффекты
- электричество
- впритык
- Конечная точка
- энергетика
- Проект и
- оценивать
- оценка
- пример
- опыт
- БЫСТРО
- Особенность
- Особенности
- Поля
- фигура
- в заключение
- финансы
- находит
- Во-первых,
- соответствовать
- фокусируется
- после
- следующим образом
- Рамки
- каркасы
- Бесплатно
- от
- далее
- будущее
- порождать
- генерируется
- поколение
- GitHub
- происходить
- здравоохранение
- высота
- помощь
- здесь
- High
- очень
- Наем
- исторический
- домашнее хозяйство
- домохозяйства
- Как
- How To
- Однако
- HTTPS
- Сотни
- ICON
- Иллинойс
- реализация
- улучшать
- включают
- включает в себя
- В том числе
- указывать
- individual
- промышленность
- информация
- Инфраструктура
- Инновации
- вход
- пример
- интегрированный
- интересы
- инвентаризация
- инвестиций
- КАТО
- несколько устройств
- IT
- январь
- работа
- Джобс
- присоединение
- известный
- язык
- запуск
- запускает
- Лиды
- изучение
- линия
- линий
- места
- логистика
- искать
- машина
- обучение с помощью машины
- сделать
- ДЕЛАЕТ
- управляемого
- магистра
- материалы
- математика
- методы
- Метрика
- может быть
- ML
- модель
- Модели
- Месяц
- БОЛЕЕ
- перемещение
- с разными
- а именно
- натуральный
- потребности
- сеть
- сетей
- следующий
- ноутбук
- номер
- открытый
- Откроется
- оптимизация
- заказ
- организации
- Другое
- на открытом воздухе
- собственный
- пакет
- часть
- страстный
- процент
- производительность
- период
- планирование
- Планы
- состояния потока
- мощностью
- предсказывать
- прогноз
- Predictions
- предыдущий
- процесс
- обработка
- производит
- Продукт
- Продукция
- при условии
- приводит
- целей
- Четверть
- Сырье
- рекомендовать
- Запросы
- требовать
- исследованиям
- Полезные ресурсы
- Итоги
- розничный
- обзоре
- корень
- Run
- Бег
- главная
- то же
- масштабируемые
- Шкала
- Школа
- Наука
- Ученый
- секунды
- выбранный
- Серии
- обслуживание
- Услуги
- набор
- несколько
- краткосрочный
- дефицит
- показывать
- показанный
- аналогичный
- просто
- одинарной
- твердый
- Решение
- Решения
- РЕШАТЬ
- некоторые
- конкретный
- стандарт
- и политические лидеры
- современное состояние
- Статус:
- акции
- диск
- потоковый
- потоковая служба
- упорядочить
- сильный
- студия
- системы
- Технологии
- тестXNUMX
- Тестирование
- Ассоциация
- следовательно
- три
- Через
- билет
- время
- традиционный
- Train
- Обучение
- трансфер
- Тенденции
- типично
- понимать
- единиц
- Университет
- Университет Калифорнии
- использование
- пользователей
- коммунальные услуги
- Использующий
- Проверка
- различный
- версия
- Видео
- неделя
- еженедельно
- Что
- Википедия.
- без
- работавший
- работает
- письмо
- ВАШЕ