基於MaxCompute方案的TFI門店銷量調研
摘要:TFI擁有全球超過1200家快餐店,是世界知名品牌之一的公司,分別是漢堡王,Sbarro,Popeyes,Usta Donerci和Arby。他們在歐洲和亞洲雇用了2萬多人,並在開發新的餐館方麵進行了大量的日常投資。現在,決定何時何地開設新餐館,主要是基於開發團隊的個人判斷和經驗的主觀過程。這個主觀數據難以準確地推斷出地域和文化。新的餐廳需要大量的時間和資金投入才能開始運作。如果選擇餐廳的位置錯誤,將會導致營業虧損,並在18個月內關閉。現在TFI公布了其在土耳其地區所經營的137家餐廳開張一年以來的銷量情況和餐廳的地理位置,所處地區的人口等等一係列進過隱藏處理過後的特征,通過學習這137家餐廳的數據來預測另外100000家餐廳的年度銷量情況。
數據信息:
利用所提供的數據,建立機器學習的模型,對每一家餐廳未來的年度銷量情況進行預測。
一、銷量預測架構
1.數據源:數據包括TFI集團旗下的餐廳數據構成的137條訓練集和100000條測試集;
2.數據同步至阿裏雲:使用DataX工具將數據導入到在ODPS建立的表中;
3.流程計算:阿裏雲建立算法分析流程;
4.分析結果:對三個模型預測結果以及blending後的結果存儲於表;
5.數據可視化展示:從數據庫中讀取結果數據進行可視化展示。
二、分析方法
1.本文中的137條訓練集和100000測試集來源於真實的TFI集團旗下的餐廳曆年的經營情況的數據。
2.獲得的數據導入阿裏雲數加平台,數據表包含有餐廳開張日期、餐廳坐落城市、坐落城市的類型、所在城市的人口統計數據、房產數據、商業數據、收入數據等字段。
3.在數加的算法平台上建立回歸預測的算法流程如上圖所示。
4.采用數加組件中的缺失值統計,對每條數據缺失比例進行統計,缺失比例離群的判斷為離群點,將0值視為缺失值,並將缺失值使用分別用訓練集和測試集各字段的均值人工合成填充。
5.將餐廳所在城市按經濟層度標準合並為不同層級;餐廳的已經開張時間與銷量並沒有太大的關係,反而是餐廳開張的時間點很重要,所以這裏提取開張的月份,哪一天,哪一個星期來作為特征;將坐落城市類型進行獨熱向量編碼編碼處理;對銷量進行平衡處理,使用log(x+1)處理,將其數據分布變為近視的正態分布;最後將數值型的特征進行標準化既能加快模型的學習速度,也能將數據放入一個標準分布內,使得數據之間差距盡可能小。
6.將處理完畢的數據分別放入隨機森林、L2正則的線性回歸、xgboost中進行回歸學習,並用網格搜索的方法調整各個模型的超參數使其達到最佳狀態。
7.可視化展示,將流程計算的結果,進行可視化展示。
三、年度銷量預測結果展示
將預處理後的數據分別放入隨機森林、L2正則的線性回歸、xgboost中進行回歸學習,並用網格搜索的方法調整各個模型的超參數使其達到最佳狀態。
調節L2正則的線性回歸中懲罰項參數‘alpha’。
當alpha取值範圍在0.001到100時,模型在驗證集上的最小均方誤差不斷減小,在40以後基本維持不變;
當alpha取值範圍在20到60範圍時,模型的最小均方誤差持續減小,在60時達到最小,故L2正則的線性回歸的正則化懲罰項的取值設置為60;
2.調節隨機森林的的‘決策樹’顆數,‘決策樹’最大深度,‘葉子節點’最小個數等參數。
決策樹的顆數範圍在10到70時,模型在驗證集上的最小均方誤差變化如上圖;
決策樹的顆數範圍在1到20時,模型在驗證集上最小均方模型變化如上圖,在取值為10時,模型有最小均方誤差,故將隨機森林的決策樹顆數設置為10顆;
決策樹的最大深度在3-13時時,最小均方誤差均維持不變,由此將決策樹最大深度設置為3;
決策樹的葉子節點最小個數取值範圍在20到200時,隨機森林的最小均方誤差變化如上圖所示
決策樹的葉子節點最小個數取值範圍在2到40時,隨機森林的最小均方誤差維持不變,故將決策樹的葉子節點最小個數取值設置為2;
經過類似的調參過程,分別找到各模型的最優超參數,讓其達到最好狀態,並用其在測試集進行預測,預測結果可視化如下:
L2正則的線性回歸在驗證集上年度銷量的預測結果
MaxCompute最佳實踐
最後更新:2017-07-27 18:33:02