最近我們被客戶要求撰寫關於時間序列預測的研究報告,包括一些圖形和統計輸出。
如今DT(數據技術)時代,數據變得越來越重要,其核心應用「預測」也成為網際網路行業以及產業變革的重要力量。
對於零售行業來說,預測幾乎是商業智能(BI)研究的終極問題,單純從機器學習的角度來說,做到精準預測很容易,但是結合業務提高企業利潤卻很難。預測精確性是核心痛點。
業務挑戰
扎對 ,將產品粗略分為:基本款和時裝。 對於基本款,每年都沒什麼大變化,國際流行的影響也不大,那麼可以進行長計劃生產。對於時裝,決定潮流走向的決策權不在某個區域,一個地方的買手們也沒有成長到可以準確預判國際流行趨勢,所以需要結合不同區域的各種因素,進行預測。對應的,在新貨構成中,銷量預測策略為:基本款計劃生產,時尚款機動調整。
解決方案
任務/目標
根據服裝零售業務營銷要求,運用多種數據源分析實現精準銷量預測。
數據源準備
沙子進來沙子出,金子進來金子出。無數據或數據質量低,會影響模型預測效果。在建立的一個合理的模型之前,對數據要進行收集,搜集除已有銷量數據之外的額外信息(比如天氣,地點,節假日信息等),再在搜集的數據基礎上進行預處理。
有了數據,但是有一部分特徵是算法不能直接處理的,還有一部分數據是算法不能直接利用的。
特徵轉換
把不能處理的特徵做一些轉換,處理成算法容易處理的乾淨特徵舉例如下:
銷售日期。就時間屬性本身來說,對模型來說不具有任何意義,需要把日期轉變成到年份,月份,日,周偽變量。
產品特徵。從產品信息表裡面可以得到款式,顏色,質地以及這款產品是否是限量版等。然而並沒有這些變量。這就需要我們從產品名字抽取這款產品的上述特徵。
以上例舉的只是部分特徵。
構造
以上說明了如何抽取相關特徵,我們大致有如下訓練樣本(只列舉部分特徵)。
劃分訓練集和測試集
考慮到最終模型會預測將來的某時間段的銷量,為了更真實的測試模型效果,以時間來切分訓練集和測試集。具體做法如下:假設我們有2014-02-012017-06- 17的銷量相關數據。以2014-02-012016-03-19的銷量數據作為訓練,2016-03-20~2017-06-17的數據作為測試。
建模
ARIMA, 一般應用在股票和電商銷量領域
ARIMA模型是指將非平穩時間序列轉化為平穩時間序列,然後將結果變量做自回歸(AR)和自平移(MA)。
隨機森林
用隨機的方式建立一個森林,森林由很多決策樹組成,隨機森林的每一棵決策樹之間是沒有關聯的。在得到森林之後,當有一個新的輸入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類(對於分類算法),然後看看哪一類被選擇最多,就預測這個樣本為那一類。
支持向量回歸(SVR)
SVR最本質與SVM類似,都有一個緣,只不過SVM的保證金是把兩種類型分開,而SVR的保證金是指裡面的數據會不會對回歸有幫助。
模型優化
1.上線之前的優化:特徵提取,樣本抽樣,參數調參。
2.上線之後的疊代,根據實際的A / B測試和業務人員的建議改進模型
點擊標題查閱往期內容
數據分享|R語言分析上海空氣品質指數數據:kmean聚類、層次聚類、時間序列分析:arima模型、指數平滑法
左右滑動查看更多
01
02
03
04
從上圖可以看出,在此案例中,支持向量機和隨機森林算法模型的預測誤差最小,運用3種方法預測某商品的銷量,其可視化圖形如下:
可以看出,銷量的預測值的趨勢已經基本與真實銷量趨勢保持一致,但是在預測期較長的區間段,其預測值之間的差別較大。
評估效果不能只看銷量,要綜合考慮,需要參考業務對接,預測精度,模型可解釋性和產業鏈整體能力等因素綜合考慮;不能簡單作為企業利潤增加的唯一標準我們的經驗是,預測結果僅作為參考一個權重值,還需要專家意見,按照一定的權重來計算。
展望
除了以上列舉的一些方法,我們已經在嘗試更複雜的銷售預測模型,如HMM,深度學習(Long Short-Term Memory網絡,卷積神經網絡(CNN))等;同時需要考慮到模型的可解釋性,可落地性和可擴展性,避免「黑箱」預測 ;還在嘗試採用混合的機器學習模型,比如GLM + SVR,ARIMA + NNET等。
銷售預測幾乎是商業智能研究的終極問題,即便通過機器學習算法模型能夠提高測試集的預測精度,但是對於未來數據集的預測,想做到精準預測以使企業利潤最大化,還需要考慮機器學習模型之外的企業本身因素。比如,企業的整體供應鏈能力等,如何將企業因素加入到機器學習模型之中,是未來預銷售預測的一個難點與方向。因此,要想解決銷售預測終極問題還有一段路要走。
點擊文末 「閱讀原文」
獲取全文完整資料。
本文選自《機器學習助推快時尚精準銷售時間序列預測》。
點擊標題查閱往期內容
Python中利用長短期記憶模型LSTM進行時間序列預測分析 - 預測電力負荷數據
RNN循環神經網絡 、LSTM長短期記憶網絡實現時間序列長期利率預測
結合新冠疫情COVID-19股票價格預測:ARIMA,KNN和神經網絡時間序列分析
深度學習:Keras使用神經網絡進行簡單文本分類分析新聞組數據
用PyTorch機器學習神經網絡分類預測銀行客戶流失模型
PYTHON用LSTM長短期記憶神經網絡的參數優化方法預測時間序列洗髮水銷售數據
Python用Keras神經網絡序列模型回歸擬合預測、準確度檢查和結果可視化
Python用LSTM長短期記憶神經網絡對不穩定降雨量時間序列進行預測分析
R語言中的神經網絡預測時間序列:多層感知器(MLP)和極限學習機(ELM)數據分析報告
R語言深度學習:用keras神經網絡回歸模型預測時間序列數據
Matlab用深度學習長短期記憶(LSTM)神經網絡對文本數據進行分類
R語言KERAS深度學習CNN卷積神經網絡分類識別手寫數字圖像數據(MNIST)
MATLAB中用BP神經網絡預測人體脂肪百分比數據
Python中用PyTorch機器學習神經網絡分類預測銀行客戶流失模型
R語言實現CNN(卷積神經網絡)模型進行回歸數據分析
SAS使用鳶尾花(iris)數據集訓練人工神經網絡(ANN)模型
【視頻】R語言實現CNN(卷積神經網絡)模型進行回歸數據分析
Python使用神經網絡進行簡單文本分類
R語言用神經網絡改進Nelson-Siegel模型擬合收益率曲線分析
R語言基於遞歸神經網絡RNN的溫度時間序列預測
R語言神經網絡模型預測車輛數量時間序列
R語言中的BP神經網絡模型分析學生成績
matlab使用長短期記憶(LSTM)神經網絡對序列數據進行分類
R語言實現擬合神經網絡預測和結果可視化
用R語言實現神經網絡預測股票實例
使用PYTHON中KERAS的LSTM遞歸神經網絡進行時間序列預測
python用於NLP的seq2seq模型實例:用Keras實現神經網絡機器翻譯
用於NLP的Python:使用Keras的多標籤文本LSTM神經網絡分類