Skip to content

metaspoit/walmart-forecast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Прогнозирование недельных продаж Walmart

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

О проекте

Этот проект — завершённый пример предсказания недельных продаж сети Walmart. Он демонстрирует полный цикл работы аналитика:

  • исследование данных (EDA),
  • создание признаков для временных рядов,
  • обучение нескольких моделей,
  • сравнение точности,
  • визуализация прогнозов,
  • формирование бизнес-выводов.

Датасет

В датасете содержатся недельные продажи по магазинам Walmart и дополнительные признаки:

  • Weekly_Sales — недельные продажи,
  • Store — идентификатор магазина,
  • Date — дата недели,
  • Holiday_Flag — праздничная неделя или нет,
  • Temperature — температура,
  • Fuel_Price — цена топлива,
  • CPI — индекс потребительских цен,
  • Unemployment — уровень безработицы.

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


Стек технологий

  • Python — основной язык

  • Работа с данными: pandas, numpy

  • Визуализация: matplotlib, seaborn

  • Временные ряды: statsmodels (ARIMA), prophet

  • ML-модели:

    • RandomForestRegressor
    • GradientBoostingRegressor

Структура проекта

walmart-forecast/
├─ data/
│  └─ Walmart_Sales.csv                     # исходный датасет
├─ notebooks/
│  ├─ problem_and_eda.ipynb              # постановка задачи + EDA
│  ├─ feature_engineering_and_models.ipynb   # признаки + обучение моделей
│  └─ evaluation_and_insights.ipynb      # оценка моделей + выводы
└─ README.md

Использованные модели

Простые модели:

  • Seasonal Naive — базовый ориентир (повтор продаж год назад)
  • ARIMA (1 магазин) — классическая модель временных рядов
  • Prophet (1 магазин) — модель тренда и сезонности

ML-модели:

  • Random Forest — глобальная модель по всем магазинам
  • Gradient Boosting — модель, использующая лаги, календарь и макрофакторы

Результаты (MAPE / WAPE)

Модель MAPE WAPE
Seasonal Naive ~0.053 ~0.051
ARIMA (1 магазин) ~0.060 ~0.059
Prophet (1 магазин) ~0.104 ~0.102
Random Forest ~0.045 ~0.045
Gradient Boosting ~0.042 ~0.040

Gradient Boosting — лучшая модель в проекте. Она наиболее устойчива и точна при прогнозе продаж по всей сети магазинов.

Выводы

  • У продаж ярко выраженная годовая сезонность.
  • Праздничные недели ведут себя иначе — их лучше прогнозировать отдельно.
  • Магазины сильно различаются по уровню и динамике продаж.
  • Макроэкономические признаки влияют слабо, но дают небольшое улучшение.
  • Глобальные ML-модели работают лучше, чем отдельные модели для каждого магазина.
  • Лучшая модель — Gradient Boosting, она использует лаги, календарь и макрофакторы.

Возможные улучшения

  • Кросс-валидация по временным окнам
  • Подбор гиперпараметров моделей
  • Кластеризация магазинов по поведению спроса
  • Построение ансамбля моделей

About

Прогнозирование недельных продаж Walmart

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors