零售產業如何透過XGBoost解決實體店面庫存問題?

11
Photo by: Nathália Rosa

情境

許多超商門店面對「庫存」與「銷售」的棘手問題,如:門市需要進多少貨?明天會賣出多少商品?即期品該如何處理?面對庫存管理問題時,現今生鮮零售業的庫存管理仍仰賴長期主觀經驗來預測方式,而鮮少以歷史資料作為庫存計畫的基礎。

當預測的銷售量被高估時,店家需處理過多庫存而增加多餘的成本。舉例而言,生鮮商品有其保存期限,一旦過有限期限便極其容易腐敗,店家就必須承擔此材料的報廢成本;然而,當商品的銷售量被低估時,可能會造成顧客的滿意度下降,此滿意度在庫存管理上稱為「顧客服務水準」(Service Level),也就是在正確地點與時間下,提供正確且足夠數量的商品給給顧客。例如受歡迎的商品馬上被洗劫一空,顧客會惱怒於無法購得想買的商品,因此對店家的觀感評分、顧客服務水準下降。尤其是當零售商因為特別需求、新產品上市、換季等因素而造成店家的庫存管理變得加更困難

若想要更了解存貨管理可以參考此篇文章:存貨管理

其中為了最大化「顧客服務水準」,有效的存貨管理必須具備以下指標:需求追蹤現有與訂單中存貨的系統、可靠的需求預測(包括可能預測誤差的指標)、針對存貨成本合理估計。若能預測未來貨物的需求,最小化訂購與持有的存貨成本,便可以為企業帶來最大利益!

任務目標

Corporación Favorita為厄瓜多的生鮮雜貨零售商,經營超過數百間超級市場,販賣超過200,000間不同的商品。其中不乏生鮮商品,Corporación Favorita希望藉由機器學習,找出預測未來銷售需求的演算法,以達到精準的庫存管理。

22
圖1. Corporación Favorita品牌LOGO

解決方法

這次使用預測未來銷售需求的演算法是XGBoost,但在進入演算法之前,我們需要先對資料進行探勘,大致對資料有所暸接,以了解接下來可以如何使用資料!

如圖2. 此次訓練資料集記錄了id、購買時間(date)、購買商店編號(store_nbr)、購買物品編號(item_nbr)、購買數量(unit_sales)、促銷活動起始日(onpromotion)。資料集中總共有2,380,821筆資料,統計從2013至2017年的銷售狀況,不過因為資料集記錄的是促銷活動起始日,所以難以追蹤促銷活動狀況,所以此次分析只使用最近一年2017年的資料!

33
圖2. 訓練資料集

若在穩定的市場中,供求量和供給量達到平衡,商品銷售量通常不會有太大的波動。讓商家難以預估銷售量總是產品促銷或宣傳行銷的時候,因為商家往往難以估量行銷帶給商品的效益,有時行銷方案正中消費者的所需,商品供不應求;但有時行銷方案無人問津,導致商品供過於求。在此資料集中,因為Corporación Favorita為厄瓜多的生鮮雜貨零售商,所以行銷方案以促銷為主,若能利用機器學習找出促銷與銷售量之間的關係,並且預測出銷售量的多寡,就能解決生鮮雜貨商頭痛的問題!

分析步驟

1. 樞紐分析 — 統計每個商店在不同時間點的銷售量與促銷活動

首先,因為庫存量與銷售量息息相關,所以我們首要步驟是計算出每個日期下,每個商店中個商品的「總銷售量」。此時,「樞紐分析」便派上用場,計算商品銷售量與時間的關係!

圖3. 各時間商品的總銷售量
2. 變數處理 — 將文字轉成數字型態

在此資料集中有「分類型態」的資料,例如:「商品種類(family)」、「城市(city)」、或「商品分類(type)」等資料,這些分類型的資料往往是以文字表示,如:「商品種類(family)」有「GROCERY I」和「BREAD/BAKERY」等分類,「城市(city)」包括Quito、Guayaquil、Amabto等地名。然而,機器模型訓練時只認得數字,所以文字需要先轉換成數字型態,例如:商品分類中的「GROCERY I」以0表示,「BREAD/BAKERY」以1表示,如此一來,在訓練模型時,電腦便可以處理分類型態的變數了!特別需要注意的事情是,「GROCERY I」的0與「BREAD/BAKERY」的1和「是否易腐壞」欄位0/1的意義不相同。

「是否易腐壞」欄位的0代表不易腐壞,1代表易腐壞,可以以是非題作為類比。但是,「商店種類」的0代表「GROCERY I」,1代表「BREAD/BAKERY」,在資料集未顯示的中,還有其他的「商品種類」,如超市「SUPERMARKET」等可能以3表示,所以此種分類模式可以以選擇題作為類比。

55
圖4. 「分類型態」的文字變數
3. 切分時間 — 不同時間切分點

如果使用「天」做為模型預測的參數不太實際,首先「天」的單位太小,導致不必要的資料量過大,另外這樣計算可能會忽視不同參數的重要性,因此我們需要找因此我們以不同天數切分時間,計算平均銷售量,並且給予不同的權重,這個過程在資料分析中成為「特徵工程」。

特徵工程的目的在於讓機器學習模型訓練更有效率,特徵工程就像烹飪,把原本難以下嚥的生雞肉、麻油、蔥、薑、蒜料理成人體能充分吸收的麻油雞湯。所以在大多數資料科學專案中,鮮少以原始資料進行訓練,而是會先進行「特徵工程」,萃取出幾個最重要的因子來進行模型訓練,如此一來,不僅模型訓練效率增加,也可以找出更有商業洞察、更有說服力的詮釋!

了解資料集如何進行特徵工程以及特徵工程的目的後,資料集再加上步驟2的變數就可以形成我們要的放入模型的資料集了!

圖5. 進行「特徵工程」後的欄位

 

4. 機器學習 — 預測在不同時間商品的銷貨量

最後,就可以拿上述處理過的資料放入強大的XGBoost模型進行學習!便可以得到XGboost預測的結果。

成果與應用

如何以最小成本最大化顧客服務的水準便是庫存管理的目的。庫存管理成本主要來自儲存空間以及採購的成本。若訂購的次數越多,消耗的成本越多,但同時也須確保產品安全存量,不至於販賣時產品缺貨。許多「經濟訂購量模型」(Basic Economic Order Quantity, Basic EOQ)模型便意圖解決此問題,藉由最小化不同訂單訂購量的年度總成本,來求出最佳的訂購數量。最著名的「基本經濟訂購量模型」(Basic EOQ)便是以存貨的年持有成本與訂購成本之總和為最小的方式計算固定訂購量。

藉由機器學習模型,可預測不同時間點,各商店中商品的銷售狀況。如圖6. ,在2017年8月16號,商店編號為1的105574號商品可能會賣出6–7個商品。藉由此機器學習的模型便可以知曉現在持有的存貨數量以及未來訂購成本,以達成預測出未來的需求,估計合理的存貨成本,幫助採購最更精確的決定,達到最小的訂購成本及持有成本,以幫助企業獲利!

77
圖6. 預測結果

作者:葉庭妤(臺灣行銷研究特邀作者)、徐子皓(臺灣行銷研究特邀編審)、劉加德(臺灣行銷研究特邀編審)、鍾皓軒(臺灣行銷研究有限公司創辦人)

參考資料

  1. Corporacion-Favorita-Grocery-Sales-Forecasting-Kaggle
  2. Corporación Favorita Grocery Sales Forecasting
  3. Corporación Favorita Grocery Sales Forecasting 資料集
  4. 葉瑞其2021.06.17 作業管理》存貨管理筆記

更多實戰案例及情境好文推薦

回到頂端