Оценете единичните продажби на стоки на дребно на Walmart

Съдържание:

  1. Бизнес проблем
  2. Източник на данни
  3. Проблем с машинното обучение
  4. Проучвателен анализ на данни
  5. Инженеринг на функции и предварителна обработка на данни
  6. Подход на модели
  7. Подаване на Kaggle
  8. Внедряване
  9. Бъдеща работа
  10. Препратки

1. Бизнес проблем:

1.1 Общ преглед:

Вднешната изключително конкурентна бизнес среда всеки иска да увеличи своите приходи/продажби. Като цяло сме чували за стратегическото планиране кога да наемете нови хора, но наистина ли знаете кога точно трябва да разширите екипа си, да започнете следващата си промоционална кампания или да пуснете новия си артикул? За всички тези неща се прави прогнозиране на продажбите.

Значи предсказваме ли бъдещето? да!! но не толкова точно. Това се прави чрез използване на техники за машинно обучение.

Прогнозирането предоставя знания за естеството на бъдещите условия. Прогнозирането на продажбите помага на всеки бизнес да взема по-добри бизнес решения. Помага при цялостното бизнес планиране, бюджетиране и управление на риска. Тя позволява на компаниите ефективно да разпределят ресурси за бъдещ растеж и да управляват своя паричен поток. Той също така помага на бизнеса да оцени точно своите разходи и приходи, въз основа на което те могат да предвидят краткосрочното и дългосрочното си представяне.

Миналите продажби са добър водещ индикатор за бъдещите продажби. MOFC е добре известен със своите състезания Makridakis и в този проблем петата итерация (прогнозиране на M5) даде данните за историческите продажби (минали продажби) от Walmart, най-голямата компания за търговия на дребно в света.

1.2 Цел:

Основната цел е да се оценят точковите прогнози за единичните продажби на различни продукти, продавани в САЩ от Walmart, възможно най-точно, което от своя страна помага на различните магазини на Walmart да увеличат приходите си.

2. Източник на данни

Йерархичните данни за продажбите на Walmart са предоставени в това състезание „M5 Forecasting-Accuracy“.

2.1 Общ преглед на данните:

Данните за продажбите, предоставени от Walmart, обхващат магазини в три американски щата (Калифорния, Тексас и Уисконсин) и включват ниво на артикул, отдел, продуктови категории и подробности за магазина. Освен това има обяснителни променливи като цена, промоции, ден от седмицата и специални събития.

  1. Calendar.csv:Той съдържа информация за датите, на които продуктите се продават, както и събитията и програмите, проведени в този ден.
  2. Sales_train_evaluation.csv: Съдържа историческите дневни продажби на единици за всеки продукт във всеки магазин от ден 1 до ден 1941.
  3. Sell_prices.csv: Съдържа информация за цената на продуктите за всяка седмица за магазин.

3. Проблем с машинното обучение

Горният проблем е проблем с данни за времеви серии и може да бъде решен с помощта на техники за класическо машинно обучение за оценка на продажбите на единица за определен ден чрез използване на исторически данни за продажбите. Дадените данни от времеви серии могат да бъдат преформатирани като набор от данни за контролирано обучение чрез използване на техники за инженерство на функции и след това могат да се прилагат алгоритми за машинно обучение върху тях. Може да се реши с помощта на регресионен модел на машинно обучение, тъй като входните променливи са генерирани характеристики и артикули, продадени на определена дата като изходна променлива, която принадлежи на реално число.

4. Проучвателен анализ на данни

Сред 3049 уникални продукта, около 47% (1437) от продуктите попадат в категорията ХРАНИ, 34% (1047) попадат в категорията ДОМАКИНСТВО, а останалите 18,5% (565) продукти са от категория ХОБИТА.

Има плавен ръст на продажбите. (възходяща тенденция) с повтарящи се сезонни модели. Има спад на продажбите през месец декември всяка година.

Можем ясно да забележим, че магазините, разположени в Калифорния, се представят добре с възходяща тенденция (29,1 милиона общи продажби). До октомври 2012 г. месечните продажби на магазините в WI бяха ниски в сравнение с други. Но след октомври 2012 г. месечните продажби се подобриха, подобно на магазините в TX. WI има продажби от около 18,5 милиона, което е най-малкото сравнително.

Продажбите в магазини CA_3 са най-високи с общо 11,3 милиона продажби. WI_2 и WI_3 имат сравнително добри продажби, въпреки че WI има по-малко население. CA_4 има най-малко продажби с 4,1 милиона.

Ясно е, че ХРАНИТЕЛНИТЕ продукти са най-търсени с постепенно нарастване на продажбите през годините. Около 68% от продажбите са от продуктите на FOODS. Чрез този график можем да кажем, че категорията ХРАНИ има най-голямо търсене сред другите категории. Продуктите от категория ХОБИТА имат най-малък процент продажби (т.е. около 9%).

Продуктите на отдел FOOD_3 се открояват като продуктовия отдел с най-голямо търсене с възходяща тенденция на продажбите и повтаряща се сезонност. От юни 2012 г. HOUSEHOLD_1 увеличи продажбите си с лека възходяща тенденция. Продуктите на отдел FOODS_3 държат около 49% от общите продажби с 32,9 милиона продадени продукта. Продуктите на отдел HOBBIES_2 са най-малко продавани с общи продажби от 0,5 милиона.

Продуктът FOODS_3_090 има най-голямо търсене сред 3049 продукта с общи продажби от 1,0179 милиона продажби. Вторият продукт с най-голямо търсене е FOODS_3_586 с общи продажби от 932 000 продажби. Продуктът HOUSEHOLD_2_101 е продуктът с най-малко общи продажби от 593.

Продуктът FOODS_3_090 има най-голямо търсене сред 3049 продукта с общи продажби от 493 000 продажби, а продуктът HOBBIES_1_052 е продуктът с най-малко общи продажби от 239 в Калифорния. Продуктът FOODS_3_226 има най-голямо търсене сред 3049 продукта с общи продажби от 250,7 000 продажби и HOUSEHOLD_2_130 продуктът е продуктът с най-малко общи продажби от 109 в Уисконсин.

Можем ясно да забележим, че средните продажби в събота и неделя са високи в сравнение с други дни със средни продажби от около 41,7 000. Продажбите през месец август имат най-високи продажби със средно около 36 000. Декември месец има най-малко продажби със среден продажби от 32.9k.

Обикновено месечните продажби се увеличават всяка година. Ако сравним месечните продажби за 2013 г. и 2014 г., месечните продажби за 2014 г. са спаднали леко.

Средните продажби в деня на труда са най-високи с 42154. Продажбите на Коледа са много ниски със средни продажби от 15.

Можем ясно да забележим, че продажната цена не е постоянна. Продажната цена се различава в няколко седмици за различните магазини. (Има фиксирана цена) Колебания на продажбите в CA_3. Обикновено цените са сходни за магазини в CA_1 и CA_2. Обикновено цените са сходни за магазини в магазини, разположени в Тексас. Не можем да намерим промяна в продажната цена от последните 25 седмици.

Можем да забележим, че „wm_yr_wk“ и „year“ са най-важните характеристики, допринасящи за продажбите. Функцията „месец“ също има положителна корелация от 0,022.

5. Инженеринг на функции и предварителна обработка на данни

  • Тъй като наборът от данни се състои от данни от времеви серии, така че данните са преформулирани като единичен набор от данни за контролирано обучение. Наборът от данни за продажби се стопява (конвертиране на широкия формат на данни в дълъг формат на данни) и се обединяват всички останали набори от данни.
  • Обработени са липсващите стойности, тъй като идват от данните за продажната цена, чрез техники за средно условно изчисляване.
  • Преобразуване на всички категориални характеристики чрез замяната им с техните котешки кодове.
  • Инженерингът на характеристиките се използва за извличане на различни функции, като характеристики на изоставане и подвижни медианни характеристики.
  • Избиране на данни от последните 15 месеца (данни след 1500 дни) само за по-бърза обработка.

6. Моделен подход

6.1 Модели за първи път

  • Преди да приложим различни алгоритми за създаване на модели, трябва да разделим данните на данни за обучение, тестване и валидиране.
  • След обучение на модела и измерване на показателя за ефективност трябва да предвидим продажбите за невидимите данни. Накрая трябва да генерираме CSV файл, подходящ за изпращане в Kaggle.
  • След като създадем функции за разделяне на данни и генериране на файлове за подаване, сега можем да изпробваме различни алгоритми и да измерим показателите за ефективност, за да сравним изградените модели.
  • Като първи изрязани модели, изпробвани с основни регресионни модели като линейна регресия, хребетна регресия, байесова хребетна регресия и еластична мрежа.
  • Входните характеристики, с изключение на подвижните медианни характеристики, обикновено се представят по-добре.
  • Алгоритмите за усилване като Lightgbm Regressor и Catboost Regressor се представиха по-добре от основните модели.
  • Крайната оценка за всички получени модели е както следва

6.2 Изпращане на Kaggle

6.3 Най-добър модел

Модел на комплекта по поръчка

  1. Разделете набора от данни на обучаващ и тестов набор.
  2. Разделете набора от данни за влака на две равни непресичащи се подгрупи — D1 и D2
  3. Създайте k подизвадки от D1 и изградете базов модел за всеки подизвадков набор от данни. Обучете тези базови модели на съответните подизвадкови данни на D1.
  4. Подайте D2 данни като набор от тестови данни, за да направите прогнози за всички базови модели. Свържете хоризонтално всички тези прогнози на k базови модела, за да създадете нов набор от данни, да речем набор от метаданни. Използвайте етикети на D2 като негова целева променлива.
  5. Обучете мета-модел на този набор от метаданни
  6. Проверете ефективността на този мета-модел върху тестов набор от данни, като подадете тестов набор от данни към базовите модели и след това подредете прогнозите на базовите модели, за да създадете метаданни, които ще бъдат въведени за мета-модела.
  7. Тази комбинация от базови модели и мета-модел е нашия персонализиран комплектен модел.
  • След създаване на персонализирани функции, необходими за внедряване на персонализиран ансамбъл модел.

Оптималните базови учащи са около 10, но не знаем точния брой на оптималните базови учащи. Така че отново намираме оптимални базови учащи между 6 и 14.

7. Подаване на Kaggle

След обучение на модела с оптимални базови обучаеми, т.е. 8 получи най-добър резултат от 0,65766

  1. От горния резултат на частната класация на лидерите наблюдаваме, че от всички модели моделът на персонализирания ансамбъл се представя добре, тъй като е в състояние да прогнозира продажби с по-нисък резултат (WRMSSE)=0,65766 частен резултат.
  2. След като получим дни за валидиране (1914–1941) продажби и дни за оценка (1942–1969) продажби от крайния най-добър персонализиран модел на ансамбъл и изпращане в дадения формат, получаваме резултат от класацията 0,65766, който се класира 331 от 5558 участници и стои в топ 6%.

8. Разгръщане

  1. След обучение на персонализирания ансамбъл модел с най-добри хипер-параметри, ние съхраняваме базовите модели и мета модела в pickle файлове и ги внедряваме в AWS EC2 заедно с API на колбата, изграден около крайния конвейер, който приема ITEM_ID и STORE_ID като вход и връща начертаната прогноза продажби като продукция.
  2. Създава се Html страница, която приема ITEM_IDи STORE_IDкато вход и дава начертаните прогнозни продажби на конкретния артикул за следващите 28 дни, т.е. май От 23 до 19 юни 2016 г.

Връзката към разгърнатото приложение е тук.

9. Бъдеща работа:

  1. Опитвайки се с подхода на невронната мрежа, тъй като дава гъвкавост на функциите за загуба.
  2. Опитване с LSTM модели за прогнозиране на времеви редове.

10. Литература:

  1. https://mofc.unic.ac.cy/m5-competition/
  2. https://www.researchgate.net/publication/344487258_The_M5_Accuracy_competition_Results_findings_and_conclusions
  3. https://medium.com/analytics-vidhya/m5-forecasting-accuracy-time-series-forecasting-using-walmart-sales-data-374765d3f1f7
  4. https://medium.com/thecyphy/m5-forecasting-accuracy-af6c45fb7d58
  5. https://www.kaggle.com/tarunpaparaju/m5-competition-eda-models
  6. https://www.appliedaicourse.com/course/11/Applied-Machine-learning-course

Пълното внедряване на код и модел е достъпно в моето хранилище на GitHub. Можете да го проверите тук

Можете да се свържете с мен в LinkedIn тук