开源-BDCI2018供应链需求预测模型第一名解决方案和代码
本人經過作者同意,公布了:BDCI2018供應鏈需求預測數據競賽第一名的解決方案和代碼。該方案利用賽題為運用平臺積累最近1年多的商品數據預測45天后5周每周(week1~week5)的銷量,為供應鏈提供數據基礎,將能夠為出海企業建立全球化供應鏈方案提供關鍵的技術支持。
賽題介紹
1.賽題名稱
供應鏈需求預測
2.賽題網址:
https://www.datafountain.cn/competitions/313/details
3.賽題背景
主辦方:中國計算機學會 & 執御
浙江執御信息技術有限公司是一家專注出海的跨境電商企業,利用移動互聯網創新和大數據應用,助力中國制造升級,將中國和全球的優質品牌、設計、產品輸送到“一帶一路”沿線國家和地區。在電商產業鏈中,為提升用戶物流服務體驗,供應鏈協同將貨品提前準備在全球各個市場的本地倉,可有效降低物流時間,極大提升用戶體驗。不同于國內電商物流情況,出海電商的產品生產和銷售地區是全球化的,商品的采購,運輸,海關質檢等,整個商品準備鏈路需要更長的時間。在大數據和人工智能技術快速發展的新時代背景下,運用大數據分析和算法技術,精準預測遠期的商品銷售,為供應鏈提供數據基礎,將能夠為出海企業建立全球化供應鏈方案提供關鍵的技術支持。
4.賽題任務
供應鏈需求預測,對原問題做建模問題簡化。考慮商品在制造,國際航運,海關清關,商品入倉的供應鏈過程,實際的產品準備時長不同。這里將問題簡化,統一在45天內完成,供應鏈預測目標市場為沙特阿拉伯。賽題為運用平臺積累最近1年多的商品數據預測45天后5周每周(week1~week5)的銷量。
具體任務見賽題網址:
https://www.datafountain.cn/competitions/313/details
團隊介紹
隊名:你們偷塔,我來團
隊員:張予琛、羅律、羅賓理、朱丹青、江洪水
張予琛,中南大學研究生在讀、電投輪機賽亞軍
羅律,中南大學研究生在讀、電投輪機賽亞軍
羅賓理,中南大學本科在讀、2018 KDD CUPTOP1,也創造了最小年齡的該獎項的獲得者記錄、2018 IJCAI TOP3、工業AI智能制造全球top2、智慧中國杯,鳳凰金融量化投資大賽top1、第十屆英特爾杯特等獎和最具創意潛力獎、湖南省挑戰杯金獎和全國銅獎。
團隊成績:1/1458 (最終排名)
賽題方案
1.賽題理解
此賽題為供應鏈需求預測,提供了執御平臺一部分商品一年多的銷售和其他相關日常數據,要求預測部分sku 45天后的五周內銷量。首先,這是一個典型的時間序列回歸問題。使用傳統的時間序列回歸方法進行預測應該能夠起到一個還不錯的效果,可以作為一個Baseline模型。進一步的,可以構建訓練集,抽取一些與sku未來銷量相關性高的特征來進行機器學習模型的訓練,把這個問題看作一個回歸問題使用機器學習的方法進行預測。
??
2.數據分析
在復賽中,總共提供了上百萬個sku的2017年3月到2018年3月16的歷史數據,要求預測其中十五萬個sku在2018年5月1號開始的五周的每周銷量。因為要預測的銷量的時間單位是周,所以我們在歷史數據中新增了一個用于表示當前時間距離2018年3月16日有多少周的列。圖1是每周全部sku的總銷量圖,圖中我們可以看出,在15周(也就是2017年11月左右)的時候,總銷量出現了異常高峰,明顯高于其他時期。我們推測這段時間應該是平臺在搞大型促銷活動,所以才會導致出現如此的異常銷量高峰,在構建訓練集和提取特征時應該注意避開這段時期或者進行平滑處理。通過對要進行預測的sku_id的分析,我們發現要求進行銷量預測的sku都是在2018年3月有過銷量的sku,也就是說此賽題是預測近期活躍sku的未來銷量。于是,我們在構建訓練集的時候,可以考慮模擬這種抽取近期活躍的sku的方式來構建線下訓練集。
要求進行銷量預測的時間的2018年5月起的五周,然后這個賽題的目標市場是在沙特阿拉伯。我們注意到,在這段時間內,有沙特阿拉伯的重要節日,開齋節。我們認為,平臺在這段時間應該也會進行相應的促銷活動,通過對平臺活動數據的分析發現果然如此,所以這段時間的銷量必然會有個起伏的過程,可以根據平臺活動節奏適當對預測銷量進行調整。
圖1
3.特征工程
我們首先用時間序列加權回歸的方法做了一個基礎的模型,sku未來的銷量肯定與歷史銷量有關,越是離得近的銷量數據越有參考價值。所以我們選取了離2018年3月16日最近的八周的銷量,分別賦以11,7,6,5,4,3,2,1的權重系數,然后求得平均值作為線上的預測結果。這個基礎模型就已經能夠在線上取得不錯的分數了,后期我們將這個預測值加入到我們的機器學習模型中作為特征。
其他的特征方面,主要分為商品歷史特征、整體活動特征以及時間序列特征。其中商品歷史特征主要是商品每周銷量/商品銷量占品類的比例/商品價格等,在這些特征中主要提分點還是基于銷量的特征。由于商品的促銷等特征在預測時段的數據并未提供,所以這部分特征我們團隊并沒有做相關的挖掘,主要還是以歷史銷量為主。整體活動特征是marketing表中所述全場活動,對整體銷量影響極大,這部分特征由于我們數據集構造并沒有連續劃窗,所以我們并沒有直接將其放入特征中,而是對歷史銷量進行平滑,平滑掉全場大促的活動對模型的偏移。時間序列特征本質是規則,根據衰減情況把商品歷史銷量直接作為預測值,同時,在這部分特征里對歷史銷量運用卡爾曼平滑的方法,線上提分明顯,并且線上線下都非常穩定。
?
4.模型選擇
模型部分,我們團隊一直采用的XGboost單模型,并未做其他的模型融合操作。單模型速度較快,工業應用價值高,并且更能體現特征的價值。而XGboost更是一個應用價值非常高的模型,可以進行分布式實現以及調用GPU進行加速,更有利于現實中的工業應用。?
復現方法
1.代碼和數據集
代碼和數據集可以在百度云下載:
鏈接:https://pan.baidu.com/s/1yMd_t9MhzFMM0i78iy8nHg?
提取碼:rrxm?
如果被和諧請回復“供應鏈預測”獲取新網址。
備注:
作者曾在github公布過代碼,與百度云一致:
https://github.com/luoda888/CCF2018-Top2-Demand-Forecast
經過我和作者的溝通,在百度云上增加了github里沒有的數據集,如果要復現,建議到百度云下載數據集,需要查看更新請在github下載最新代碼。
2.復現方法
復現環境:python3.6
將百度云下載的數據集壓縮包解壓到代碼目錄(數據在fusai_data目錄),使用作者提供的簡易執行代碼一鍵運行:
- python feature-1.py
運行時間約30分鐘即可復現跟比賽成績相近的結果。
?總結
本方案利用采用單模型進行預測,能取得良好的成績并非依靠模型融合的方法。方法具有良好的可擴展性,可以拓展的場景有音樂流行趨勢預測、金融序列預測、以及絕大部分效率預測問題。由于方案的簡單以及可擴展性,適合真實場景應用,該方案最終獲得綜合評分第一名(線上成績為第二,綜合評分第一)。
分享是一種美德-感謝作者團隊的開源分享,期待廣大的機器學習愛好者開源自己的代碼,為廣大的初學者提供便利。
請關注和分享↓↓↓?
機器學習初學者
QQ群:774999266
往期精彩回顧
機器學習簡易入門-附推薦學習資料
機器學習初學者公眾號下載資源匯總(一)
黃海廣博士的github鏡像下載(機器學習及深度學習資源)
吳恩達老師的機器學習和深度學習課程筆記打印版
機器學習小抄-(像背托福單詞一樣理解機器學習)
首發:深度學習入門寶典-《python深度學習》原文代碼中文注釋版及電子書
科研工作者的神器-zotero論文管理工具
機器學習的數學基礎
機器學習必備寶典-《統計學習方法》的python代碼實現、電子書及課件
吐血推薦收藏的學位論文排版教程(完整版)
總結
以上是生活随笔為你收集整理的开源-BDCI2018供应链需求预测模型第一名解决方案和代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 首发:台大林轩田《机器学习基石》系列课程
- 下一篇: python绘图工具基础-matplot