FBProphet — проверенная библиотека для проекта прогнозирования временных рядов. Некоторые из его преимуществ по сравнению с другими библиотеками прогнозирования временных рядов включают:

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

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

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

Из-за своих особенностей электронная коммерция может иметь несколько рекламных акций в праздники и особые даты, такие как День святого Валентина или даты с повторяющимся числом, например 11–11 (11 ноября). Это важная информация, которую следует учитывать при создании модели прогнозирования временных рядов.

Данные временных рядов

Давайте проверим эти синтетические данные исторической транзакции электронной коммерции. Вы можете получить доступ к файлам csv и ipynb здесь.

Здесь видно, что кампания по датам с повторяющимися номерами играет значительную роль в увеличении количества заказов. Вы можете увидеть всплески 01–01–20 и 02–02–20. Это может быть следствием масштабной программы продвижения или других маркетинговых инициатив.

Прогнозирование

Используя эти данные, мы собираемся прогнозировать заказ каждого товара за последний месяц (февраль 2021 г.). Затем прогнозируемое число будет сравниваться с фактическими данными заказа в этом месяце.

Для этого нам понадобятся два данных:

  • Исторические номера заказов
  • Ссылка на специальную дату (праздник, промо-день и т. д.)

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

Перед внедрением модуля fbprophet в наборы данных крайне важно иметь правильное имя столбца.

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

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

Прогнозируемое значение может быть построено непосредственно из модели:

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

Модель также может отображать связанную информацию из таких данных, как:

  • Общая тенденция
  • влияние особых дат на номера заказов
  • недельная/годовая сезонность

Ошибки измерения

Чтобы измерить ошибки между прогнозируемыми результатами и фактическими данными, мы собираемся использовать MAPE и MAE.

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

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

Краткое содержание

FBProphet — очень мощная, но простая в использовании библиотека для прогнозирования временных рядов. Ключ к получению наилучших результатов от этого алгоритма заключается в том, чтобы сначала понять ваши данные, а затем выделить их характеристики в качестве параметров для подбора, таких как сезонность, праздники и т. д.