本次比賽主辦方給了兩個月的準備期,但是實際比賽時長只給兩個小時(當場出題目),非常考驗 Coder 的基本功:
- Data processing
- EDA
- Feature engineering & Domain Knowledge
- Data resampling
- Module Selection
Shopee competition 2020 - Kaggle: Shopee challenge 2020 - User Spending Prediction
隊名:台灣梯度下降第一品牌
隊員:
Ethan - Github
我 - Github
🏆以往成績:
- 《2019 autumn E.Sun Bank AI open competition- credit card fraud detection》:
隊名:台灣梯度下降第一品牌
1. 2nd of final selected 20 teams in business solutions competition.
2. Top 1%(15/1366) in F1 score predict competition.
- 《2020 Shopee Code League- series of Kaggle competition in Asia-Pacific(open category)》
隊名:在蝦皮中叫外賣是否搞錯了什麼
1. 14th in Sentiment Analysis(NLP task).
2. 34th in Product Title Translation(NLP task).
3. 38th in Marketing Analytics(Recommendation forecasting task).
👉本次排名....
-
《I'm the Best Coder! Challenge 2020(open category)》
5th in User Spending Prediction.
Pipeline 白板很重要,它可以幫助我們在面臨未知問題時能節省大量工作,我們拿Shopee Challenge 2019 - Marketing Analytics 的資料做為假想資料,並考慮各種特殊情況下產出Pipeline白板。 我們 Pipeline 白板的流程大概長這樣:
分辨主檔是很重要的,通常拿Submit檔案當主檔(有目標Y值,也有主要key值),其他當描述檔,接下來的工作就很簡單了:想辦法把資料描述檔塞進主檔裡(注意mapping過程Key值不能一對多)。 這時就考驗平常處理資料的功夫了,不外乎就幾種:
- 時間序列與數字的轉換。
- 文字資料的處理
- 資料與資料間的mapping。
- 資料缺失值的合理填充、刪除。
- 高基數資料的轉換
其實當有一個資料描述檔Mapping到主檔後,就可以直接跑模型了,就算還有其他描述檔還沒有Mapping到主檔也沒關係:laughing:。
特徵工程直接決定了模型的表現能力,但兩個小時能做的其實也不多,以下列出幾個這次有用到的:
- Encoding: One-Hot encoding, Target encoding, mean-encoding
- Grouping: K-means, DBSCAN
- Dimensionality reduction: PCA,
- rescaling: min-max rescale, 統計標準化
Grouping 是一定要做的,現在不做,後面的資料重採樣也得做。
這一步其實就可以略窺模型的能力了,特徵做得越好,目標特徵(Y值)分離度越大,模型表現越好。
用 EDA 評估 Feature 就可以知道做出來的變數是好變數還是渣渣。
這一步決定的模型Robust的能力,做得好模型就有好的泛化能力。 資料重採樣有兩個重點:
- 分類任務中,標籤的數量要保持"平衡"(這部分見仁見智,但是我從來沒有搞懂"平衡"的定義...:joy:)。
- 抽到的樣本要具有代表性(如果Grouping做不好,抽樣的代表性就差,模型效能直接炸開:boom:)。
唯一支持 XGBoost!!
不知道的 Boosting 原理的童鞋們,請參考周志華教授所撰寫的西瓜書。
如果要我用一句話來表示Boosting,它就是個 **可以把 "渣渣"模型變成 "我就是屌"模型(周杰倫?)...**的算法。
打過幾次比賽後開始體認到Machine Learning是一個完整的資料分析框架,已經成為做Data的必備技能:清晰的資料處理邏輯、運用Feature engineering & Domain Knowledge製作變數、變數好壞評估、模型選擇...等。
以上技能是必備,更要滿足輕量、快速部署、算法效率/效能高要求...等要求,如何達到?刷些leetcode,然後做出自己的Pipeline吧!
面對資料如同面對疫情一樣,超前部署是一定要做的事情了。