В этом проекте учащимся предоставляются исторические данные о продажах 45 магазинов Walmart в разных регионах. В каждом магазине есть много отделов, и участники должны спрогнозировать продажи для каждого отдела в каждом магазине.

О данных

Исторические данные о продажах представлены для 45 магазинов Walmart, расположенных в разных регионах. В каждом магазине есть несколько отделов, и перед вами стоит задача оценить объем продаж по всему отделу для каждого магазина.



Прогноз продаж Walmart
Прогнозирование продаж Walmart на основе модели CRISP-DMwww.kaggle.com



Кроме того, Walmart в течение года проводит различные рекламные акции со скидками. Эти скидки предшествуют крупным праздникам, четыре крупнейших из которых — Суперкубок, День труда, День благодарения и Рождество. Недели, включающие эти праздники, имеют в оценке в пять раз больший вес, чем недели без праздников. Частью задачи этого конкурса является моделирование эффектов скидок в эти праздничные недели без полных/идеальных исторических данных.

Основная идея анализа набора данных Walmart Forecasting состоит в том, чтобы получить четкое представление о факторах, влияющих на продажи в магазине Walmart.

Начнем шаг за шагом

  • Во-первых, нам нужно импортировать необходимые библиотеки.
  • Мы должны прочитать данные из файла CSV.
  • Теперь нам нужно изучить набор данных

Для изучения мы будем использовать следующее:

  • голова()
  • столбцы
  • форма
  • Информация()
  • описывать()
  • нулевой()
  • сумма()
  • Ну и немного визуализаций.

Тип магазинов вместе с их процентом:

Визуализация 10 лучших отделов в наборе данных поезда вместе с их процентным соотношением:

Визуализация данных IsHoliday:

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

Давайте посмотрим на средние еженедельные продажи в год и выясним, есть ли какие-либо другие пиковые продажи в праздничные дни, которые не были учтены полем «IsHoliday».

Средний недельный объем продаж за 2010 год

Средний недельный объем продаж за 2011 год

Средний недельный объем продаж за 2012 год

Объединение трех графиков выше

Средний объем продаж на отдел

Средний объем продаж в магазине

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

  • Разделение данных на Train и Test
  • Построение модели
  • Мы будем использовать GridSearchCV

GridSearchCV похож на супергероя настройки моделей! Он экономит день, просматривая предопределенный набор гиперпараметров и находя наилучшую комбинацию, которая дает наилучшие результаты. Это похоже на игру в крестики-нолики, но вместо крестиков и ноликов у нас разные гиперпараметры, и GridSearchCV находит выигрышный ход!

  • Мы будем использовать регрессию гребня.

Ридж-регрессия — это метод линейной регрессии, используемый для решения проблемы переобучения. Он добавляет к функции потерь штрафной член, который помогает уменьшить величину коэффициентов, что приводит к балансу между подгонкой и простотой модели. Это похоже на привязку к коэффициентам, контролируя их дикое поведение, чтобы повысить общую точность предсказания!

  • Мы будем использовать регрессию Лассо.

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

  • Мы будем использовать регрессию дерева решений

Регрессия дерева решений — это древовидная модель для задач регрессии в машинном обучении. Он разбивает набор данных на все более мелкие подмножества, создает дерево решений на основе функций, а затем делает прогнозы, взяв среднее значение окончательного подмножества. Думайте об этом, как об игре с 20 вопросами на вашем компьютере — дерево будет задавать вопросы, пока не найдет правильный ответ!

  • Мы будем использовать регрессию случайного леса

Регрессия случайного леса похожа на сбор деревьев решений для создания одной надежной модели. Он выращивает несколько деревьев со случайными подмножествами данных и предсказывает конечный результат, взяв среднее значение результатов всех деревьев. Представьте себе группу людей, пытающихся предсказать высоту здания, каждый из которых стоит в разных местах и ​​проводит измерения — регрессия случайного леса похожа на объединение их ответов для более точного прогноза.

Результаты обучения для модели гребневого регрессора:
Среднеквадратичная ошибка: 21696,189989134735
R-квадрат: 0,08442134387348998

Результаты тестирования модели гребневого регрессора:
Среднеквадратическая ошибка: 21811,998658223216
R-квадрат: 0,08452464107207469

Результаты обучения для модели регрессора Лассо:
Среднеквадратическая ошибка: 21975,472790897762
R-квадрат: 0,060698178849947215

Результаты тестирования модели регрессора Лассо:
Среднеквадратическая ошибка: 22092,154357868425
R-квадрат: 0,06085668250157994

Результаты обучения для модели регрессора дерева решений:
Среднеквадратическая ошибка: 1998,5028257639012
R-квадрат: 0,9922314808122509

Результаты тестирования модели регрессора дерева решений:
Среднеквадратическая ошибка: 4889,261579817622
R-квадрат: 0,9540016471125194

Результаты обучения для модели регрессора случайного леса:
Среднеквадратичная ошибка: 2736,1184338620674
R-квадрат: 0,9854387555238997

Результаты тестирования модели регрессора случайного леса:
Среднеквадратическая ошибка: 3881,3722341729394
R-квадрат: 0,9710114612412988

С помощью приведенной выше реализации можно было спрогнозировать прогноз для магазинов Walmart.

Для всей блокнота посетите мой Kaggle аккаунт