Прогноз спроса

СИБУР производит и продает различную нефтехимическую продукцию во многие страны мира. Поэтому прогноз спроса необходимо строить с детализацией до продукта, региона, клиента и менеджера, осуществляющего сделку.

Для построения модели даны сделки за тренировочный период (с 2018-01-01 по 2020-07-31) с полями, описывающими сделку. Тестовый набор данных соответствует периоду с 2020-08-01 по 2021-07-31.

Данные

Поля в наборе данных:

  • material_code - код продукта,
  • company_code - код клиента, который всегда равен 0 для спотовых сделок,
  • country - страна, в которую осуществляется продажа,
  • region - регион внутри страны, в которую осуществляется продажа; для большинства стран не детализирован,
  • manager_code - код менеджера, ведущего сделку,
  • month - месяц сделки,
  • material_lvl1_name, material_lvl2_name, material_lvl3_name - группировка продукта по категориям разных уровней,
  • contract_type - тип сделки,
  • date - точная дата сделки,
  • volume - объем сделки.

Структура кода и валидации

В этом соревновании вам предстоит загружать код, который вычисляет предсказания, т. е. суммарный объем для следующего месяца для каждой группы material_code, company_code, country, region, manager_code.

  • в наборе данных есть 941 группа material_code, company_code, country, region, manager_code, при этом нет групп, которые встречаются только в тестовом периоде,
  • полностью сформированный набор предсказаний содержит, таким образом, 941 строку, для каждой из которых вычислены 12 значений суммарного объема для каждого месяца в тестовом периоде,
  • код решения должен принимать на вход целевой месяц и сделки, предшествующие ему (с начала тренировочного периода) и возвращать предсказания объемов для целевого месяца; более детальный пример показан в [SC2021] Baseline.ipynb,
  • разбиение на публичный и приватный лидерборды осуществляется по группам: часть групп, соответствующая приблизительно 60% суммарного объема по всем группам за все время, используется для публичного лидерборда, а все группы - для приватного.

Особенности запуска:

  • Ubuntu 20.04,
  • 4 vCPU,
  • 8Gb RAM,
  • максимальное время работы: 10 минут,
  • загрузка распаковывается в директорию /launcher в контейнере, в нее же добавляется модуль main.py, который читает данные и вызывает функцию predict из модуля predict.py вашей загрузки,
  • импорт функции для расчета предсказаний в main.py осуществляется через from .predict import predict,
  • вызов происходит из / через python3 -m launcher.main,
  • main.py вызывает функцию predict из predict.py 12 раз для каждого месяца в тестовом периоде,
  • зависимости устанавливаются из requirements.txt,
  • ваши решения должны быть упакованы в архив, включающий все дополнительные файлы, необходимые для работы (модели, внешние данные и т. д.),
  • вы можете добавить зависимости, поместив в корень архива файл requirements.txt,
  • у контейнеров нет доступа к сети.