最近在打 Kaggle,這個比賽 Instarcart 主要是想預測顧客下次購物會買哪些東西,最後我的成果是 2,669 人中,排名 745,最後的實際分數是 0.3818061。
Kaggle 是一個資料科學競賽平台,公司會將自己的真實資料放上來,並說明要預測的目標為何?然後就會有來自世界各地的資料科學家上來 PK。前三名的通常會有獎金,或是工作機會。是一個發展得很棒的平台,也在去年被 Google 買走了。
比賽過程中,會有人把自己的 code 放上來,看到大神們優美的 code,一方面如沐春風,一方面覺得:天啊我寫的是什麼爛東西。無論如何,真的受益無窮,希望有天也能寫點像樣的東西上去分享。
簡單記錄一下這次比賽的過程:
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
- 0.2345964:
將每個顧客前 75% 最常買的東西全部丟進去看看。
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
以下皆 based on 這個 kernel:
- 0.2107359:
本來照著用 xgboost 但 Python 好像不好裝,於是先用貝氏看看。
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
- 0.3783106:
用 Light GBM 代替,分數顯著上升,沒有認真研究 Light GBM,先用了別人設定好的參數。
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
- 0.3806689:
加入變數:department_id, aisle_id, _whether_buy_last_time
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
- 0.3822601:
憑直覺亂猜,改了 threshold 跟 round,分數小有提升。
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
接下來一直卡關,嘗試了:
1. 加入新變數:_whether_buy_last_last_time
2. 用 for loop 調參數,試著跑最佳解,但不知為何,試出來的最佳參數,分 數反而都下降了……。
3. 試著用 Kmeans 先幫顧客分群,加入變數,分數更差了。
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
- 0.3825685:
看到有人提到 Word2vec,覺得能提供產品之間的某種關聯性,應該會是個不錯的變數,於是 train 了一個會產生 10 個向量的 Word2vec 模型,加入變數中,確認成績有些微提升後,再亂調了一下 Light GBM 的參數。變數重要性一欄表:(0-9 是 Word2vec 的 10 個向量)
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
- 0.0697947:
最近剛上完手把手的深度學習實務,對於 keras 感到躍躍欲試!結果沒時間好好嘗試,隨便 train 了一個 model,得到史上最低分嗚嗚。
一開始直接用上課試的參數來做,結果不管第幾次的 epoch,loss 跟 acc 都一模一樣。寄信問了授課老師後,才知道是 Learning Rate 太大,原來真實資料要用的 Learning Rate,比上課操作的要小很多。
以上就是這次的 Kaggle 初體驗,希望接下來能愈來愈好!