競賽1-阿里天池-口碑客流量預測-題解總結
372/4046
賽題描述
https://tianchi.aliyun.com/competition/information.htm?spm=5176.100067.5678.2.WkzvDo&raceId=231591
給出過去16個月的口碑資料,2k商家,包括商家型別、使用者支付行為、使用者瀏覽行為,用這些資料來預測各個商家在接下來14天(11.01-11.14)每天的客流量。
難點視覺化時發現
- 這其中包含雙十一和國慶節的客流預測。但僅有三分之一的商家有去年雙十一的資訊
- 每個商家開始加入口碑的時間不一,最晚從10月份開始
- 近三個月有的商家記錄不全
</br>
冠軍題解
@CAT https://tianchi-gitlab.aliyun.com/race231591/gitlab-u2323
用了適合一般時間序列問題的時間序列加權迴歸模型(SJH)
將2016.10.11-2016.10.31及2016.9.20-2016.9.26共計28天作為訓練時間段。選擇了2016.10.18到2016.10.31共計14天、全部2000個商家的客流量作為線下測試集。排除了國慶節的干擾。
均值法,但不是簡單的把訓練集的均值當做迴歸,而是遍歷,用Loss確定最佳迴歸值。
加權
- 權重一:越靠近測試時間段的樣本的權重越大
- 權重二:對於一個商家,越遠離該商家開始營業的時間的樣本的權重越大。
- 權重三:週期(一)(這部分沒太看懂。。
</br>
第三名題解
drop-out的團隊用的是knn,根據官方的測評標準SMAPE作為knn的距離,從歷史資料中尋找最相似歷史片段進行預測填充。同時他們隊將資料以一週為單位聚合,每天的具體資料是以佔一周百分比的形式儲存。
</br>
第四名題解
https://tianchi-gitlab.aliyun.com/race231591/gitlab-u3844?spm=5176.836600.0.0.it2qKD
資料預處理
資料清洗包含三部分,通過規則清除,通過模型預訓練清除及僅保留銷量統計資訊。
1 )規則清除:比如單個買家異常消費,或對於一家店鋪銷量以歷史過去14天銷量的μ±2σ為限制,其中μ為均值,σ為均方根,以排除異常的銷量數。
2)通過模型預訓練清除:商家日銷量,可能存在一些難以預計的大幅波動,如促銷,商家停業等。對於這些規則難以清除的異常值,採用預訓練的方式清除。模型訓練中首先採用欠擬合的演算法模型預訓練,並清除殘差最大的10%(xgboost1,GBDT)和25%(xgboost2)的樣本。
3)僅保留銷量統計資訊:剔除使用者ID。預測模型
多套gradient boosting:xgboost1,xgboost2, GBDT
歷史均值+knn
雙十一修正:僅有約1/3的商家存在2015年雙11的銷量記錄,需要通過這部分商家去年雙11資訊,預測其餘商家雙11銷量表現。
採用xgboost單模型訓練,由於雙11當天對應的工作日不同,2015年資料並不能很好反映出2016年雙11節假日情況,且超市便利店類商店存在大量的資料缺失。為防止過擬合,引數設定均較為保守,最大深度為2,且加了較大的正則項,具體如下: max_depth = 2, learning_rate=0.01, n_estimators=500, reg_alpha=10, gamma = 1模型融合
調整多套gradient boosting係數,得到的結果再和均值模型融合。最後對雙十一模型進行微調。
</br>
第十六名題解
https://github.com/RogerMonkey/IJCAI_CUP_2017
用到的模型:ARIMA,GBDT,LR,RF,Extremely Randomized Trees
關於Extremely Randomized Trees的部落格:http://blog.csdn.net/zhaocj/article/details/51648966
</br>
自己的思路 -- 372名
最後來說說自己的思路吧,也跟大神們的題解對比對比,找找不足。
這次比賽和@lyq組隊,是我除了練習賽外參加的第一個資料競賽,我們想到這首先是一個時間序列的迴歸問題,通過查詢資料瞭解到處理時間序列常用的兩週演算法:STL分解和ARMA。
STL是Seasonal and Trend decomposition using loess區域性加權迴歸作為平滑方法的一種時間序列分解方法,分解結果又sensoanl部分,trend部分和remainder三部分。
而ARMA是Auto-Regressive and Moving Average Model。對於非平穩序列(如本題)需要差分或二階差分後再應用。
我們分工一個人做STL分解,一個人構造平穩序列使用ARMA,發現後者效果對於本題不好。所以我們採用了STL分解。
首先視覺化發現,國慶部分的銷量異常,雙十一部分也有變動,所以首先從trainset中把國慶部分去掉。然後發現有的店是平日客流高峰,有的是週末高峰。
通過觀察把商家最後分為四類:(根據資料缺失情況和客流情況)
- 近三個月有缺失值的商家
- 只有近三個月完整記錄的商家
- 春節後有完整記錄,且週末高峰的商家
- 春節後有完整記錄,且平日高峰的商家
節假日注意調休安排
Clustering_by_pattern.py
分類高峰就是統計工作日和週末,然後看哪個日均多。Feature_holiday_workday.py
是否有缺失值就是規則統計
資料缺失嚴重的填了均值。
STL分解需要預處理,不然影響很大。異常點去除:規則去除+手動過一遍
分解後就要分別對得到的幾部分做迴歸預測。季節性部分不變。trend用了LR,前n星期線性組合,GBDT。殘差試了一下天氣擬合。
雙十一是怎麼處理的。
線下測評就是往前推了兩週。
統計每天每個店鋪的平均view量和pay量,作為特徵
user_view.py
user_flow.py
user_flow_clsddification.py 回頭客(>5次)
加上所在位置、人均消費、評分、評論數、門店等級、一級品類作為特徵
相關文章
- 阿里天池大資料競賽阿里大資料
- 《阿里雲天池大賽賽題解析》——O2O優惠卷預測阿里
- 【天池競賽系列】菜鳥-需求預測與分倉規劃初賽冠軍解決方案
- 天池大資料比賽總結大資料
- 基於XGBoost模型的幸福度預測——阿里天池學習賽模型阿里
- 【CSDN競賽第27期】贏圖書《阿里雲天池大賽賽題解析—機器學習篇》和定製周邊阿里機器學習
- 『阿里大資料競賽』音樂流行趨勢預測_不斷更新阿里大資料
- 天池中介軟體大賽百萬佇列儲存設計總結【複賽】佇列
- Cesar競賽平臺專案中期總結
- 自能,總結,預測
- 天池新人實戰賽o2o優惠券使用預測-排名181
- 資料探勘實戰 - 天池新人賽o2o優惠券使用預測
- 阿里天池大賽 stacking 保姆級別手把手教授阿里
- 9.4 上午 becoder 模擬賽總結&題解
- 9.6 上午 becoder 模擬賽總結&題解
- 競賽釋出 | AI戰疫·小分子成藥屬性預測大賽開賽!AI
- CSDN周賽第35期:贏《阿里雲天池大賽賽題解析―深度學習篇》和定製周邊阿里深度學習
- Cesar競賽平臺——軟工3課程總結軟工
- 8.30 上午 becoder 模擬賽總結 & 題解
- 8.31 上午 becoder 模擬賽總結 & 題解
- 【Contest】Nowcoder 假日團隊賽1 題解+賽後總結
- 隨身雲資料探勘競賽解題思路
- 實驗1-波士頓房價預測
- 演算法競賽中的常用輸入輸出總結演算法
- 詳解 Kaggle 房價預測競賽優勝方案:用 Python 進行全面資料探索Python
- 天梯賽賽前總結
- 實戰人品預測之一_國內大資料競賽平臺大資料
- 藍橋杯競賽題目:”機器人繁殖“解析及題解機器人
- 校賽總結
- 省賽總結
- 資料競賽:第四屆工業大資料競賽-虛擬測量大資料
- 資料競賽入門-金融風控(貸款違約預測)五、模型融合模型
- 採用 Python 機器學習預測足球比賽結果Python機器學習
- AI預測世界盃比賽結果,驚掉下巴!AI
- [比賽總結]ACM div3 G 比賽總結ACM
- 智慧航空AI大賽-阿里雲演算法大賽總結(原始碼分享)AI阿里演算法原始碼
- [比賽總結]青島理工大學邀請賽比賽總結
- 「比賽總結」AT ABC 358 總結