portaldacalheta.pt
  • Основен
  • Дизайн На Марката
  • Тенденции
  • Инструменти И Уроци
  • Технология
Наука За Данни И Бази Данни

Оптимизиране на приходите на дребно с AI за прогнозиране на продажбите



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

Прогнозирането в бизнеса може да бъде разделено на две отделни категории: качествено прогнозиране и количествено прогнозиране .



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

За повече информация можете да погледнете Investopedia’s Financial Forecasting първо.

И двата вида прогнози показаха много обещания и успяха да създадат подобрения в бизнеса за много субекти.



Ако искате да научите повече за това как прогнозирането може да повлияе на пазарните решения, добро място е да започнете Пазари за прогнози: основи, проекти и приложения от Stefan Luckner et al.

Един проблем, с който можем да се справим, използвайки количествено прогнозиране, е прогнозирането на търсенето или прогнозирането на продажбите.



Подходи за прогнозиране на търсенето и прогнозиране на продажбите

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

Понякога ще срещнете един от тези проблеми, които могат да доведат до два основни проблема:



  • Презаредени продукти. Наличие на значителен запас от продукт, планиран да бъде продаден през определен период от време, но не продаден.
  • Изчерпани продукти. Имате възможност да продавате продукт, но не можете, защото продуктът не е наличен.

Според проучване на IHL Group на 600 домакинства и търговци на дребно , търговците на дребно губят близо 1 трилион долара продажби годишно поради проблеми с изчерпаните наличности.

„Купувачите се сблъскват с изчерпани количества при всяко трето пътуване до пазаруване, според доклада, изпратен по имейл до Retail Dive. При търговците на дребно с храни, наркотици и масови продукти те срещат артикули, които не са на склад, при всяко пето пътуване, в универсалните магазини и специализираните търговци това е всеки четвърти, а в магазините за електроника всеки трети. ' IHL Group намерена.



Както изглежда, и двата проблема водят до намаляване на приходите, защото или сме загубили вероятност за продажба, или сме инвестирали повече пари в непродадени продукти, което означава, че разполагаме с активи, които скоро няма да генерират приходи, за да компенсират разходите си.

Това очевидно е в ущърб на паричния поток на предприятието и за справяне с този риск са ни необходими две неща:



  • Повече входящи данни, които да ни помогнат да вземем решение
  • Екип за прогнозиране, който може да направи дългосрочно стратегическо планиране на системите за попълване на запасите

И така, въпросът е: Какви са индикациите, че трябва да приемете AI във вашата компания, за да подпомогнете процеса на прогнозиране?

За да вземете това решение, се нуждаете от експертни отговори на следните въпроси:



  • Трудно ли е да се предскаже вашият тръбопровод за продажби?
  • Прогнозирането на продажбите ви неточно ли е или не е достатъчно точно (въпреки че имате исторически данни)?
  • Страдате ли от проблеми на изчерпаност или излишъци?
  • Не можете ли да извлечете описателни и изводи от данните, които притежавате, за да управлявате вашите решения и планиране?

Отговорите на тези въпроси трябва да са ясен сигнал, който ви помага да решите дали да започнете да използвате AI във вашите стратегии за прогнозиране или не.

Как може AI да се възползва от процеса на прогнозиране на продажбите?

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

Когато се справя с проблем за прогнозиране на търсенето, методът за прогнозиране на времевите редове може да се използва за прогнозиране на продажбите за всеки продукт, като по този начин позволява на компаниите да оптимизират попълването на запасите и да сведат до минимум появата на гореспоменатите проблеми. Много модели обаче се борят с прогнозирането на ниво отделен продукт или ниво на категория продукти, поради липсата на необходимите функции. И така, въпросът е: Как можем да го накараме да работи и да се възползваме максимално от нашите данни?

За търговците в реалния живот тези проблеми са всичко друго, но не и тривиални. Или имате 1000+ продукта, които въвеждат много нелинейност в набора от данни и многовариантни зависимости , или трябва да бъдете предупредени за размера на прогнозираното попълване на запасите с много предварително известие, за да можете да го произведете или закупите или да направите каквото е необходимо, за да го придобиете, докато се материализира търсенето.

В този случай класическите модели харесват АРИМА и ВИЕ ЛИ СТЕ няма да се представи и ще ни трябва по-надежден метод като RNN и XGBoost , и затова се нуждаем от много създаване на функции, за да се справим с този проблем.

За да работи това, трябва:

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

Заради тази статия ще вземем XGBoost като пример за такъв модел.

Необходими функции в моделите за прогнозиране на продажбите

Наборът от функции, необходими за този проблем, е класифициран в четири основни групи:

  • Функции, свързани с времето
  • Функции, свързани с продажбите
  • Функции, свързани с цената
  • Свойства, свързани със запасите

Свързани с времето функции

За разлика от дълбоко обучение (повтаряща се невронна мрежа) , моделите за машинно обучение не могат да получат дългосрочни или краткосрочни зависимости в рамките на времеви ред, без да създават ръчен слой за извличане на функции за Време за среща особеност.

Много функции могат да бъдат извлечени от датата, като:

  • Година
  • Ден
  • Час
  • Уикенд или делничен ден (независимо дали денят е делничен или уикенд)
  • Ден на седмицата

Много подходи просто извличат тези времеви характеристики и ги използват като входни данни и модели на обучения, но може да се направи по-нататъшно инженерство. Както виждаме, характеристиките (ден, час, ден от седмицата) са периодични, което означава, че имат набор от повтарящи се стойности. Как може един модел да се справи с това?

Краткият отговор е, че не може, защото това, което моделът вижда, е, че час 00:00 е на 23 часа разстояние от 23:00, но всъщност е на един час път. Един от начините да се реши това е да се превърнат тези характеристики в циклична трансформация.

Свързани с времето функции

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

Това ще премахне прекъсването, което се случва в периодичните времеви функции или всяка периодична функция.

За нашата статия ще използваме Примерен набор от данни на Superstore е намерен публично и се опитайте да предвидите целевите месечни продажби за определена категория продукти.

Също така ще използваме среда Python 3.7 със следните библиотеки:

  • NumPy
  • Панди
  • XGBoost
  • Sklearn

Сега ще ви покажа как да изградите функция за преобразуване на функция за период и да тествате дали е била полезна или не.

def convert_periodic(val,period): theta = 2*np.pi*val/period sin_period = np.sin(theta) cos_period = np.cos(theta) return sin_period,cos_period def convert_month(x): return convert_periodic(x,12) df['sin_month'], df['cos_month'] = zip(*df['month'].map(convert_month))

С това на място сме готови да тестваме дали добавената функция ще подобри производителността или не.

X = df.drop(['Order Date','Sales','sin_month', 'cos_month'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False)

Както виждаме, направихме регистрация 1p трансформация за нашата целева функция за продажби, защото тя е изкривена функция (обикновено не се разпространява).

Сега ще поставим XGBoost регресор на данните.

y_pred = model.predict(X_test) print(f'Loss without cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss without cyclic conversion on testing set is 0.4313676193485837

След това ще опитаме с нашата създадена функция.

X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with cyclic conversion on testing set is 0.33868030449130826

Както виждаме, загубата се подобри от 0.43 RMSE на 0.33 RMSE.

Някои други свързани с времето функции, за които можете да помислите, в зависимост от вашия проблем, са:

  • Брой месеци, от които артикулът е в магазина
  • Брой дни от последната продажба

Характеристики, свързани с продажбите

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

Характеристиките на изоставането са исторически записи за продажбите на продуктите. Например, ако вземем функция с 12 забавяния за месечни продажби като вход към нашия модел, за да прогнозираме продажбите за май 2020 г., това означава, че ще предоставим на модела записи с данни между май 2019 г. и април 2020 г. Това може да бъде наистина полезно.

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

Ето как можем да добавим функции за забавяне в нашата рамка с данни:

for i in range(3): df[f'lag_{i+1}'] = df['Sales'].shift(i+1) df = df.dropna() df.head()

Характеристики, свързани с продажбите

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

X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with lag features on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with lag and aggregated sales features on testing set is 0.2862175857169188

Сега RMSE се подобри до 0,28, използвайки както функции за забавяне, така и циклични преобразувания.

Някои допълнителни функции, свързани с продажбите, които можете да добавите:

на какъв език е написан windows 10
  • Продадена фракция на артикула (частта от продадените артикули по отношение на общите продажби в магазин)
  • Честота на събитията за продажба за категорията на артикула
  • Добавяне на концепцията за старшинство

Старшинство е концепция, въведена за присвояване на старшинство на нови артикули в магазин:

  • Старшинство 0: елементи, нови за компанията
  • Старшинство 1: артикули, които никога не се продават в този магазин, но се продават в други магазини на компанията
  • Старшинство 2: артикули, които са били продавани в този магазин преди

Характеристики, свързани с цената

Прост аргумент е, че една от преките причини за нарастване и спад на продажбите са цените и промоциите. Цената е един от най-добрите начини за разграничаване на различните категории, подкатегории и супер-категории продукти.

Например, ако приемем, че на всеки продукт са присвоени категория и подкатегория, може да се създадат следните ценови характеристики:

  • (Средна, Макс., Мин., Медиана) цени в категорията
  • (Средни, максимални, минимални, средни) цени за подкатегория
  • Сравнения между тези статистически данни, като например разликата между всяка статистика както в категорията, така и в подкатегорията

Това обобщаване може да се извърши няколко пъти, като се използват много групировки по субект (ако приемем, че се стремим да прогнозираме месечното търсене), като например:

  • Месечно, Магазин, категория
  • Месечно, Магазин, подкатегория
  • Месечен, Магазин, Артикул, категория
  • Месечен, Магазин, Артикул, подкатегория

Също така могат да се добавят още функции, с изключение на Месечно групиране за изследване на поведението на цените като цяло.

Характеристики, свързани със запасите

Това не е толкова често срещано сред търговците на дребно и прогнозиращите продажби, но има голяма разлика в моделите за прогнозиране на продажбите. Наборите от данни за запасите съдържат основно инвентарни данни за всеки продукт, всеки ден във всеки магазин. От това можем да го комбинираме с данни за продажбите, за да получим месечен коефициент на оборот за всеки продукт. Това съотношение ще покаже колко бързо запасът от даден продукт се продава напълно и има две основни предимства:

  • Той може да помогне на модела да прогнозира продажбите въз основа на текущото ниво на запасите.
  • Тя може да ни помогне да използваме тази стойност, за да групираме продукти в бавно, средно и бързо движещи се продукти. Това групиране ще ни помогне при вземането на решения и моделирането.

За това са ви необходими ежедневни данни за запасите за всеки продукт, заедно с данните за продажбите и след това можете да изчислите коефициента на оборота на запасите, както следва:

Характеристики, свързани със запасите

Съвет: Тези обобщения се извършват въз основа на времеви диапазон. Например, ако работим по прогнозиране на месечните продажби, тогава ITO ще се изчислява като общи продажби през последния месец спрямо средната стойност на запасите през същия месец.

Прогнозирането на продажбите може да превърне данните във възможност

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

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

Ако сте компания / търговец на дребно, желаещи да приложите тази техника за прогнозиране на продажбите, започнете, като съберете всички данни, които можете, особено ежедневни продажби, дневни инвентаризации и ежедневни транзакции.

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

Препратки:

Наборът от данни
Допълнително четене относно финансовото прогнозиране

Разбиране на основите

Как изчислявате прогнозата за продажбите (на ниво продукт)?

Чрез събиране на данни за продажбите, запасите, цените, създаване на база данни за тях, предварителна обработка и извършване на инженеринг на функции за създаване на обясними функции, след това прилагане на метод за прогнозиране като XGBoost или RNN.

Какви са четирите стъпки за изготвяне на прогноза за продажбите?

Процесът на прогнозиране на продажбите е разделен на четири стъпки: събиране на данни, предварителна обработка на данни, инженеринг на функции и моделиране на данни.

Кой е най-добрият метод за прогнозиране на продажбите?

ARIMA и ETS са идеални за общи продажби, но на ниво продукт, нещо като XGBoost или RNN се представя по-добре.

Защо е важно прогнозирането на търсенето / продажбите?

Тъй като решава двата основни проблема за търсенето и продажбите, които са прекомерните проблеми със запасите и изчерпаността. Това води до по-високи приходи и по-добър паричен поток.

Каква е разликата между потенциала за продажби и прогнозата за продажбите?

Потенциалът за продажби отговаря на въпроса: „Колко бройки от определена марка могат да бъдат продадени?“ От друга страна, прогнозата за продажбите отговаря на въпроса: „Колко бройки ще бъдат продадени?“

Корпоративен рисков капитал: Дяволът ... или иновативен канал за растеж?

Инвеститори И Финансиране

Корпоративен рисков капитал: Дяволът ... или иновативен канал за растеж?
Какво представлява кръгът надолу и как да се избегне такъв

Какво представлява кръгът надолу и как да се избегне такъв

Инвеститори И Финансиране

Популярни Публикации
Fastlane: Автоматизация на iOS в круиз контрол
Fastlane: Автоматизация на iOS в круиз контрол
Ефективни комуникационни стратегии за дизайнери
Ефективни комуникационни стратегии за дизайнери
Изследване на контролирани алгоритми за машинно обучение
Изследване на контролирани алгоритми за машинно обучение
10-те UX доставки, които топ дизайнерите използват
10-те UX доставки, които топ дизайнерите използват
Тест за използваемост за преобразуване: Спрете да следвате тенденциите. Започнете с данните
Тест за използваемост за преобразуване: Спрете да следвате тенденциите. Започнете с данните
 
Кеширане през пролетта с EhCache анотации
Кеширане през пролетта с EhCache анотации
Разбиване на топ 5 мита за отдалечените работници
Разбиване на топ 5 мита за отдалечените работници
Неформално въведение в DOCX
Неформално въведение в DOCX
Проектиране за интерактивна среда и интелигентни пространства
Проектиране за интерактивна среда и интелигентни пространства
Най-добрите UX инструменти (с инфографика)
Най-добрите UX инструменти (с инфографика)
Популярни Публикации
  • какви са течовете на памет в java
  • работещи номера на кредитни карти с cvv 2017
  • изкупуване с ливъридж (lbo)
  • какво е телеграмен бот
  • конвертиране на времеви отпечатък в дата javascript
Категории
  • Дизайн На Марката
  • Тенденции
  • Инструменти И Уроци
  • Технология
  • © 2022 | Всички Права Запазени

    portaldacalheta.pt