Продукт представляет собой реализацию проекта «Предсказание спроса и планирование рабочих смен» в рамках зимней школы CompTech School 2022.
Описание папок:
data
- папка с исходными и прогнозными данными;docs
- папка с документацией проекта;stage1
- папка с кодом, где прогнозируется количество заказов по часам на 7 дней вперед;stage2
- папка с кодом, где рассчитывается количество необходимых курьеров;stage3
- папка с кодом, где оптимизируется количество смен.
Основная цель продукта - спланировать привлечение такого количества курьеров на неделю вперед по дням и по часам каждого дня недели, чтобы полностью компенсировать дневные колебания спроса, учитывая утренние и вечерние пики.
Продукт планирует рабочие смены для курьеров по доставке продуктов и бытовых товаров на 7 дней вперед. Продукт на ежедневной основе «тригерит» функцию (F) для подсчета рабочих смен. Функция F:
- Принимает:
- 1.1. Таблицу с актуальной историей по заказам;
- 1.2. Таблицу с опозданиями курьеров;
- Возвращает:
- 2.1. Таблицу с расписанием рабочих смен.
- Владелец продукта: Сбермаркет.
- Пользователи: продуктовые менеджеры, которые на основе выдаваемого результата продукта, принимают решения о найме курьеров, сами курьеры и супервайзоры.
Описание операций:
Для установки необходимых библиотек необходимо выполнить:
pip install -r requirements.txt
Для получения прогноза спроса, числа курьеров и распределения по сменам на следующую неделю необходимо подключить файл main.py
. После этого запустить функцию:
main() -> (pd.DataFrame, pd.DataFrame)
Для получения распределения заказов на следующую неделю неделю необходимо подключить файл stage1_main.py
.
После этого запустить функцию:
get_next_week(path: str) -> pd.DataFrame
Для получения оптимального распределения курьеров на следующую неделю неделю необходимо подключить файл stage2_main.py
.
После этого запустить функцию:
get_optimal_partners(path_orders: str, path_partners_delays: str, pred_orders: pd.DataFrame) -> pd.DataFrame
Для получения оптимального распределения курьеров по сменам необходимо подключить файл stage3_main.py
.
После этого запустить функцию:
get_partners_distribution(pred_partners: pd.DataFrame) -> pd.DataFrame
При создании системы команда использовала язык программирования python и его библиотеки:
- numpy
- pandas
- matplotlib
- scikit-learn
- category-encoders
- holidays
- ortools
- Захаров Андрей - Куратор
- Ратушный Алексей - Data Scientist
- Майоров Константин - Data Scientist
- Кузнецов Никита - Data Scientist
- Желтова Кристина - Data Scientist
- Завьялов Фёдор - Data Scientist
- Мельникова Маргарита - Data Scientist
- Сарыглар Орлан - технический писатель