Как стать автором
Обновить

Временные ряды в прогнозировании спроса, нагрузки на КЦ, товарных рекомендациях и поиске аномалий

Время на прочтение4 мин
Количество просмотров15K
В статье рассматриваются области применения временных рядов, решаемые задачи, и используемые алгоритмы. Прогнозирование временного ряда используется в таких задачах, как прогнозирование спроса, нагрузки на контактный центр, дорожного и интернет-трафика, решения задачи холодного старта в рекомендательных системах и поиска аномалий в поведении оборудования и пользователей.

Рассмотрим задачи подробнее.



1) Прогнозирование спроса.


Цель: снизить складские издержки и оптимизировать график работы персонала.

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

2) Прогнозирование нагрузки на службу доставки


Цель: не допустить коллапса логистики при пиковых нагрузках.

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

3) Прогнозирование нагрузки на контактный центр


Цель: при минимуме затрат на фонд оплаты труда обеспечить требуемую доступность контактного центра.

Как решается: прогнозирование количество звонков во времени, составим оптимальное расписание для операторов.

4) Прогнозирование трафика


Цель: спрогнозировать количество серверов и пропускного канала для устойчивой работы. Чтобы ваш сервис не упал в день премьеры популярного сериала или футбольного матча ;)

5) Прогнозирование оптимального времени инкассации банкоматов


Цель: минимизация объема наличности, хранимой в сети АТМ

6) Решения задачи холодного старта в рекомендательных системах


Цель: рекомендовать релевантные товары новым пользователям.

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

Решение: популярность товаров зависит от времени, когда сделана рекомендация. Использование прогнозирование временного ряда помогает выявить релевантные товары в каждый конкретный момент времени.

Лайфхаки построения рекомендательных систем мы рассмотрели в предыдущей статье.

7) Поиск аномалий


Цель: выявить проблемы в работе оборудования и нестандартные ситуации в бизнесе
Решение: если измеряемое значение выбивается из доверительного интервала прогноза, аномалия выявлена. Если это АЭС, пора наращивать квадрат расстояния ;)

Алгоритмы для решения задачи


1) Скользящее среднее


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



Когда важно, чтобы последние значения в ряду вносили больший вес, введем коэффициенты в зависимости от удаленности даты, получив взвешенную модель:



Так, можно задать коэффициент W, чтобы максимальный вес приходился на 2 последних дня и входные.

Учет циклических факторов

На качество рекомендаций могут влияют циклические факторы, такие как совпадение с днем недели, датой, предшествование праздникам и т. д.


Рис. 1. Пример декомпозиции временного ряда на тренд, сезонный компонент и шум

Экспоненциальное сглаживание – решение учета циклических факторов.

Рассмотрим 3 базовых подхода

1. Простое сглаживание (модель Брауна)


Представляет собой вычисление взвешенного среднего на последних 2-х элементах ряда.

2. Двойное сглаживание (модель Хольта)


Принимает в расчет изменение тренда и колебания значений остатков вокруг этого тренда.



Вычисляем предсказание изменения остатков ® и тренда (d). Итоговое значение y — сумма этих двух величин.

3. Тройное сглаживание (модель Хольта — Винтерса)


Тройное сглаживание дополнительно учитывает сезонные колебания.



Формулы для тройного сглаживания.

Алгоритм ARIMA и SARIMA


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

SARIMA – расширение для рядов с сезонной составляющей. SARIMAX – расширение, включающее внешнюю регрессионную составляющую.

ARIMA-модели позволяют моделировать интегрированные или разностно-стационарные временные ряды.

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

Далее ряд преобразуется взятием разности соответствующего порядка и уже для преобразованной модели строится некоторая ARMA-модель.

ARMA — линейная модель множественной регрессии.

Важно, чтобы ряд был стационарен, т.е. не менялось среднее, и дисперсия. Если ряд нестационарен, его следует привести к стационарному виду.

XGBoost – куда же без него


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

Из опыта работы команды DATA4, прогнозирование временных рядов, одна из основных задач для решения оптимизации складских затрат, затрат на персонал, оптимизации обслуживания сетей АТМ, логистики и построения рекомендательных систем. Сложные модели, такие как SARIMA дают качественный результат, но требуют больших затрат времени и подходят только для определенного круга задач.

В следующей статье мы рассмотрим основные подходы к поиску аномалий.

Для того, чтобы статьи были релевантны вашим интересам, пройдите опрос ниже, или напишите в комментариях, про какие темы написать следующие статьи.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Статьи на какую тему вам интересны
26.47% Рекомендательные системы9
20.59% Распознавание изображений7
17.65% Обработка речи и текстов6
17.65% Новые архитектуры в DNN6
82.35% Временные ряды и поиск аномалий28
50% ML в бизнесе, кейсы использования17
Проголосовали 34 пользователя. Воздержались 3 пользователя.
Теги:
Хабы:
Всего голосов 10: ↑8 и ↓2+6
Комментарии3

Публикации

Истории

Работа

Data Scientist
80 вакансий

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань