Независимо от того, распределяете ли вы ресурсы более эффективно для веб-трафика, прогнозируете потребность в персонале или прогнозируете продажи продуктов компании, прогнозирование является важным инструментом во многих компаниях. Один конкретный вариант использования, известный как прогнозирование холодного пуска, строит прогнозы для временного ряда, который имеет мало или вообще не содержит исторических данных, например, новый продукт, который только что вышел на рынок в сфере розничной торговли. Традиционные методы прогнозирования временных рядов, такие как авторегрессионное интегрированное скользящее среднее (ARIMA) или экспоненциальное сглаживание (ES), в значительной степени зависят от исторических временных рядов каждого отдельного продукта и поэтому неэффективны для прогнозирования холодного запуска.
В этом посте мы покажем, как создать механизм прогнозирования холодного запуска, используя AutoGluon AutoML для прогнозирования временных рядов, пакет Python с открытым исходным кодом для автоматизации машинного обучения (ML) на изображениях, тексте, табличных данных и данных временных рядов. AutoGluon предоставляет сквозной конвейер автоматизированного машинного обучения (AutoML) для начинающих и опытных разработчиков машинного обучения, что делает его наиболее точным и простым в использовании полностью автоматизированным решением. Мы пользуемся бесплатным Лаборатория студии Amazon SageMaker сервис для этой демонстрации.
Введение во временные ряды AutoGluon
АвтоГлюон — это ведущая библиотека с открытым исходным кодом для AutoML для текстовых, графических и табличных данных, позволяющая создавать высокоточные модели из необработанных данных с помощью всего одной строки кода. Недавно команда работала над расширением этих возможностей для данных временных рядов и разработала модуль автоматического прогнозирования, который общедоступен на GitHub, autogluon.forecasting
Модуль автоматически преобразует необработанные данные временных рядов в соответствующий формат, а затем обучает и настраивает различные современные модели глубокого обучения для получения точных прогнозов. В этом посте мы покажем, как использовать autogluon.forecasting
и применить его к задачам прогнозирования холодного старта.
Обзор решения
Поскольку AutoGluon — это пакет Python с открытым исходным кодом, вы можете реализовать это решение в местном масштабе на своем ноутбуке или в Amazon SageMaker Studio Lab. Проходим следующие этапы:
- Настройте AutoGluon для лаборатории Amazon SageMaker Studio Lab.
- Подготовьте набор данных.
- Определите параметры обучения с помощью AutoGluon.
- Обучите механизм прогнозирования холодного запуска для прогнозирования временных рядов.
- Визуализируйте прогнозы прогнозирования холодного запуска.
Ключевое допущение прогнозирования холодного запуска заключается в том, что элементы с похожими характеристиками должны иметь сходные траектории временных рядов, что позволяет прогнозировать холодный запуск для элементов без исторических данных, как показано на следующем рисунке.
В нашем пошаговом руководстве мы используем синтетический набор данных, основанный на потреблении электроэнергии, который состоит из почасовых временных рядов для 370 элементов, каждый из которых имеет item_id
от 0 до 369. В этом синтетическом наборе данных каждый item_id
также связан со статической функцией (функция, которая не меняется с течением времени). Мы обучаем ДипАР моделировать с помощью AutoGluon для изучения типичного поведения похожих элементов и передавать такое поведение для прогнозирования новых элементов (item_id
370–373), у которых нет исторических данных временных рядов. Хотя мы демонстрируем подход к прогнозированию холодного запуска только с одной статической функцией, на практике наличие информативных и высококачественных статических функций является ключом к хорошему прогнозу холодного запуска.
На следующей диаграмме представлен общий обзор нашего решения. Открытый исходный код доступен на Репо GitHub.
Предпосылки
Для этого прохождения у вас должны быть следующие предпосылки:
- An Учетная запись Amazon SageMaker Studio Lab
- GitHub доступ к учетной записи
Войдите в свою учетную запись Amazon SageMaker Studio Lab и настройте среду с помощью терминала:
Эти инструкции также должны работать на вашем ноутбуке, если у вас нет доступа к Amazon SageMaker Studio Lab (мы рекомендуем сначала установить Anaconda на свой ноутбук).
Когда вы полностью настроите виртуальную среду, запустите ноутбук. AutoGluon-cold-start-demo.ipynb
и выберите пользовательскую среду .conda-autogluon:Python
ядро.
Подготовьте целевой временной ряд и набор метаданных элемента
Загрузите следующие наборы данных в свой экземпляр записной книжки, если они не включены, и сохраните их в каталоге data/
. Вы можете найти эти наборы данных на нашем Репо GitHub:
- Test.csv.gz
- ColdStartTargetData.csv
- элементМетаДанные.csv
Запустите следующий фрагмент, чтобы загрузить целевой набор данных временных рядов в ядро:
Временные ряды AutoGluon требуют, чтобы статические функции были представлены в числовом формате. Этого можно добиться путем применения LabelEncoder()
на нашей статической функции type
, где мы кодируем A=0, B=1, C=2, D=3 (см. следующий код). По умолчанию AutoGluon определяет статическую функцию как порядковую или категориальную. Вы также можете перезаписать это, преобразовав столбец статических объектов в объектный/строковый тип данных для категориальных объектов или целочисленный/плавающий тип данных для порядковых объектов.
Настройте и запустите обучение модели AutoGluon
Нам нужно указать save_path = ‘autogluon-coldstart-demo’
как имя папки артефакта модели (см. следующий код). Мы также установили наши eval_metric
as средняя абсолютная ошибка в процентахили ‘MAPE’
для краткости, где мы определили prediction_length
как 24 часа. Если не указано иное, AutoGluon по умолчанию создает вероятностные прогнозы и оценивает их с помощью взвешенная квантильная потеря. Мы смотрим только на Модель DeepAR в нашей демонстрации, потому что мы знаем, что алгоритм DeepAR позволяет прогнозировать холодный запуск по своей конструкции. Мы произвольно устанавливаем один из гиперпараметров DeepAR и передаем этот гиперпараметр в ForecastingPredictor().fit()
вызов. Это позволяет AutoGluon просматривать только указанную модель. Полный список настраиваемых гиперпараметров см. Пакет gluonts.model.deepar.
Тренировка занимает 30–45 минут. Вы можете получить сводку модели, вызвав следующую функцию:
Прогноз по пункту «холодный старт»
Теперь мы готовы генерировать прогнозы для элемента «холодный запуск». Мы рекомендуем иметь не менее пяти строк для каждого item_id
. Следовательно, для item_id
который имеет менее пяти наблюдений, мы заполняем NaN. В нашей демонстрации оба item_id
370 и 372 имеют нулевое наблюдение, чисто проблема холодного запуска, тогда как два других имеют пять целевых значений.
Загрузите в целевой набор данных временных рядов холодного запуска с помощью следующего кода:
Мы передаем целевой временной ряд холодного запуска в нашу модель AutoGluon вместе с набором метаданных элемента для холодного запуска. item_id
:
Визуализируйте прогнозы
Мы можем создать функцию построения графика для создания визуализации прогнозирования холодного запуска, как показано на следующем графике.
Убирать
Чтобы оптимизировать использование ресурсов, рассмотрите возможность остановки среды выполнения в Amazon SageMaker Studio Lab после того, как вы полностью изучите записную книжку.
Заключение
В этом посте мы показали, как создать механизм прогнозирования холодного запуска с помощью AutoGluon AutoML для данных временных рядов в Amazon SageMaker Studio Lab. Для тех из вас, кто задается вопросом, в чем разница между Прогноз Амазонки и AutoGluon (временные ряды), Amazon Forecast — это полностью управляемый и поддерживаемый сервис, который использует машинное обучение (ML) для создания высокоточных прогнозов без какого-либо предварительного опыта ML. В то время как AutoGluon — это проект с открытым исходным кодом, который поддерживается сообществом за счет последних исследований. Мы рассмотрели сквозной пример, чтобы продемонстрировать, на что способен AutoGluon для временных рядов, и предоставили набор данных и вариант использования.
AutoGluon для данных временных рядов — это пакет Python с открытым исходным кодом, и мы надеемся, что этот пост вместе с нашим примером кода даст вам простое решение для решения сложных проблем прогнозирования холодного запуска. Вы можете получить доступ ко всему примеру на нашем Репо GitHub. Попробуйте и дайте нам знать, что вы думаете!
Об авторах
Иван Кюи — специалист по данным в AWS Professional Services, где он помогает клиентам создавать и развертывать решения с использованием машинного обучения в AWS. Он работал с клиентами в различных отраслях, включая программное обеспечение, финансы, фармацевтику и здравоохранение. В свободное время он любит читать, проводить время с семьей и максимизировать свой портфель акций.
Йонас Мюллер является старшим научным сотрудником в группе исследований и обучения ИИ в AWS, где он разрабатывает новые алгоритмы для улучшения глубокого обучения и разработки автоматизированного машинного обучения. Прежде чем присоединиться к AWS для демократизации машинного обучения, он защитил докторскую диссертацию в лаборатории компьютерных наук и искусственного интеллекта Массачусетского технологического института. В свободное время он любит исследовать горы и природу.
Венмин Йе является менеджером по исследовательским продуктам в AWS AI. Он увлечен тем, что помогает исследователям и корпоративным клиентам быстро масштабировать свои инновации с помощью современных технологий машинного обучения с открытым исходным кодом. Wenming имеет разнообразный опыт исследований и разработок в Microsoft Research, команде инженеров SQL и успешных стартапах.
- Коинсмарт. Лучшая в Европе биржа биткойнов и криптовалют.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. БЕСПЛАТНЫЙ ДОСТУП.
- КриптоХок. Альткоин Радар. Бесплатная пробная версия.
- Источник: https://aws.amazon.com/blogs/machine-learning/build-a-cold-start-time-series-forecasting-engine-using-autogluon/
- "
- 100
- 9
- О нас
- Absolute
- доступ
- Учетная запись
- точный
- достигнутый
- через
- AI
- ай исследование
- алгоритм
- алгоритмы
- Позволяющий
- Несмотря на то, что
- Amazon
- Применение
- подхода
- искусственный
- искусственный интеллект
- Автоматизированный
- доступен
- в среднем
- AWS
- строить
- строит
- бизнес
- призывают
- Может получить
- возможности
- CD
- изменение
- Оформить заказ
- код
- Column
- сообщество
- Компании
- Информатика
- потребление
- Клиенты
- данным
- ученый данных
- Спрос
- развертывание
- Проект
- развивать
- развитый
- застройщиков
- не
- Обучение
- Эффективный
- электричество
- Проект и
- вошел
- Предприятие
- Окружающая среда
- существенный
- пример
- опыт
- опытные
- продлить
- семья
- Особенность
- Особенности
- фигура
- финансы
- First
- после
- формат
- Бесплатно
- полный
- функция
- будущее
- порождать
- идти
- хорошо
- группы
- имеющий
- здравоохранение
- помогает
- очень
- исторический
- Как
- How To
- HTTPS
- изображение
- осуществлять
- улучшать
- включены
- В том числе
- individual
- промышленности
- промышленность
- интегрированный
- Интеллекта
- IT
- Основные
- известный
- портативный компьютер
- последний
- запуск
- ведущий
- УЧИТЬСЯ
- изучение
- Библиотека
- линия
- Список
- мало
- загрузка
- машина
- обучение с помощью машины
- Создание
- менеджер
- рынок
- Мета
- Microsoft
- MIT
- ML
- модель
- Модели
- самых
- перемещение
- новый продукт
- ноутбук
- открытый исходный код
- Другое
- на открытом воздухе
- процент
- в Фармацевтической отрасли
- «портфель»
- Predictions
- Проблема
- проблемам
- Процессы
- производит
- Продукт
- Продукция
- профессиональный
- Проект
- приводит
- R & D
- Сырье
- Reading
- рекомендовать
- исследованиям
- ресурс
- Полезные ресурсы
- розничный
- главная
- Шкала
- масштабирование
- Наука
- Ученый
- Серии
- обслуживание
- Услуги
- набор
- Короткое
- аналогичный
- Software
- Решения
- Расходы
- Начало
- Стартапы
- акции
- студия
- успешный
- Поддержанный
- цель
- задачи
- команда
- Технологии
- Терминал
- Через
- время
- вместе
- традиционный
- трафик
- Обучение
- поезда
- us
- использование
- Виртуальный
- визуализация
- Web
- Что
- КТО
- в
- без
- Работа
- работавший
- работает
- нуль