一、目的
每個公司都有自己的產品需要推銷與銷售,但公司產品的需求量往往無法提前評估,而有供應問題與定價問題,若能利用AI預測下一期的產品需求量,則可以提早準備製作所需的產品量,以減少成本消耗與擬訂適合的價格。
二、方法
- 從Kaggle上下載產品需求資料集(Historical Product Demand.csv),作為公司產品資料的模擬。
- 利用EDA查看資料狀態,資料清理後將資料按時間序列排序,刪除遺失值與資料過少的年份。
- 由於資料時間最小單位為天,因此將同一天的需求量加總,資料總數約為1600筆。
- 利用滾動預測之方法做資料的轉換,並嘗試不同窗口大小做調整。
- 兩個ipynb檔皆可進行上述操作,差異在於product_demand_xgb.ipynb選擇XGBoost模型並隨機挑選最佳超參數,product_demand_lstm.ipynb選擇lstm模型調整神經層數與神經元數,並比較兩種模型在不同窗口大小、神經層數大小之預測結果。
三、結果
- 結果顯示XGBoost的結果較為準確,誤差相對較小。
- LSTM可透過調整神經層數改變預測值的趨勢大小,層數越大預測值越保守,層數越小預測值變動幅度越大,在5層的神經層數時,預測值較為穩定的,相對XGBoost結果較少誤差很大情況出現。
- 根據誤差較大的時間點做深入的資料分析,發現資料的連續性對於預測值與實際值的誤差可能有影響。
四、改善方向與應用
- 改善資料時間的連續性
- 增加資料總數
- 加入影響需求量之因素
詳細資料報告可參閱"需求評估AI專題簡報檔"
資料來源:https://www.kaggle.com/datasets/felixzhao/productdemandforecasting