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

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

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



    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 дают качественный результат, но требуют больших затрат времени и подходят только для определенного круга задач.

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

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

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

    Статьи на какую тему вам интересны

    • 15,8%Рекомендательные системы3
    • 10,5%Распознавание изображений2
    • 10,5%Обработка речи и текстов2
    • 15,8%Новые архитектуры в DNN3
    • 79,0%Временные ряды и поиск аномалий15
    • 47,4%ML в бизнесе, кейсы использования9
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 3

      0
      Статья — это как грубо урезанная обработка поста от ODS.
        –2
        Указанный вами пост от ODS действительно является качественным изложением про временные ряды. Но текущая статья затрагивает немного другие аспекты, и написана, чтобы люди интересующиеся тематикой могли дополнить свои знания. Если вы ее внимательно прочитаете, общего с указанной вами статьей, только перечень алгоритмов, но это логично, так как обе статьи описывают устоявшиеся подходы к решению задачи. Понимаю, что вам нравится оставлять негативные комментарии, но пожалуйста, не надо это делать для каждой статьи, даже если они вам не нравятся. Конструктивную критику вы всегда можете написать в личные сообщения, и я постараюсь ее учесть в следующих статьях, либо отредактировав текущую. Надеюсь на ваше понимание.
        +1
        Интересно, как соотносится «тройное сглаживание» и преобразование Фурье/Гёрцеля?

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

        Самое читаемое