Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Santander Value Prediction Challenge ​ 17th Solution​

2,955 views

Published on

Santander Value Prediction Challenge ​ 17th Solution​
Kaggle Tokyo Meetup #5

https://github.com/keeeeei79/Kaggle_santander_solution

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Santander Value Prediction Challenge ​ 17th Solution​

  1. 1. Santander Value Prediction Challenge 17th Solution Kaggle Tokyo Meetup #5 @keeeeei79
  2. 2. • 名前 : keeeeei79 • Backgound • 経済学部出身 • Web系新卒1年目 • Kaggle歴 • 2018/3 Toxic Comment Classification Challenge → 大学入学当初に買ったMBA(メモリ4G)では太刀打ちできず • 2018/5 TalkingData AdTracking Fraud Detection Challenge → tkmさんの動画でGCP使えば戦えることを知るが、データがでかすぎて挫折 Who am I ? Kaggle Meetup初参加 & 対外発表初めてなのであとでいろいろツッコみを入れていただけたらと思います
  3. 3. • コンペ概要 • 解法 • まとめ Agenda
  4. 4. • Santander銀行がホストとなって開催された3回目のコンペ • コンペ期間 : 2018/06/19 ~ 2018/08/20 • Target : 個々の顧客の取引価格 • データ • 特徴はすべて匿名化されている • スパース • Train : 4459 x 4993 • Test : 49342 x 4992 • 評価指標 Root Mean Squared Logarithmic Error Overview
  5. 5. Big Leakage • Giba氏によってデータセットに大きなLeakageがあり、それを示すカーネルが公開される • IDとカラムをうまく並び替えるとtargetが他のデータにleakしてることがわかる
  6. 6. • Leakageを公開したGiba氏のチームが1st • PublicLB 2nd → PrivateLB 3566th というbig shake downがあった Result
  7. 7. • コンペ概要 • 解法 • まとめ Agenda
  8. 8. My Main Approach Leakage Part ML Model Part Yes Leakage → Leakage Value No Leakage → ML model Prediction
  9. 9. My Main Approach Leakage Part ML Model Part Yes Leakage → Leakage Value No Leakage → ML model Prediction
  10. 10. Leakage Part • Leakage カーネルで13rows x 13columnsのIDとカラムが公開された後、 いかに他のLeakageを見つけるかの勝負になった • 下図のように2カラムずらして値が一致してるデータを探す
  11. 11. • エラー分析 • うまくLeakageが見つからなかったデータを調べる → 正確にLeakageが見つからないデータには複数のLeakage候補が見つかってしまうことがわかった → 複数見つかってしまう原因は公開された13カラムだけではデータに0が多いために 一意に決まらないことだった Leakage Part の気づき どっちが上のデータのtargetかわからない
  12. 12. ・ 多くのカラムの並び順がわかれば一意に決まる Leakage Part の気づき … … 他の並び順が分かっているカラムセット こっちが上のデータのtargetとわかる → 並び順がわかるカラム数が増えるほど正確にLeakageを見つけることができる
  13. 13. • カラムとIDの並び順の見つけ方 1. 既に並び順が分かっているIDだけのデータセットを使って、ランダムに1カラムずつ取り出し、隣り合うカラムをすべての カラムから探す (この時、隣り合うカラムが一意に決まるものしか採用しない) 2. データセットを転置して、IDについても同様にして隣り合うIDを探す 3. 1,2を繰り返す (ルービックキューブ) Leakage Part の気づき ランダムに取ってきたカラム 残りのすべてのカラムを 1つずつ試す もし赤い部分が一致した カラムが1つだけだったら 加える 残りのすべてのカラムを 1つずつ試す もし赤い部分が一致した カラムが1つだけだったら 加える …繰り返す
  14. 14. Leakage Part の気づき • 199セットのカラムの並び(40カラムの並びは90セット)、768セットのIDの並びが 見つかった • 見つけたカラムセットを使ってaccuracy1.0で trainに対して3887個、testに対して7851個のLeakageが見つかった (1stはtrainに対して3887個、testに対して7886個見つけていた) • Leakageが見つかったデータ以外を公開カーネルで埋めると199th (シルバー)
  15. 15. My Main Approach Leakage Part ML Model Part Yes Leakage → Leakage Value No Leakage → ML model Prediction
  16. 16. ML Model Part • LightGBM • Features (→ 36th) • original feature • 見つけたカラムセットごとの統計量 (平均、標準偏差、最大、、etc) • 見つけたカラムセット全体の統計量 • 0でないデータが70%以上のカラム全体の統計量 • 0でないデータが70%以下のカラム全体の統計量 • Leakageが見つかったTestをTrainに加える (→ 4th) • CV 1.315 • 5 seed Averaging
  17. 17. ML Model Part • 上手くいかなかったこと • seed Averagingする際に各seed毎にLightGBMのハイパーパラメータをチューニングする → チューニングしないで同じハイパーパラメータを使ったほうがよかった • Quantile系の特徴量 • original featureの値にlogを取る (late submitでやってみたらスコアが上がった...) .....etc • やればよかったこと • CVする時に同じユーザーを同じFoldに入れるようにする • 特徴量はまだかなり作りこむ余地があった
  18. 18. • PrivateLBで1番いいものを選べなかった (Best score 4th , but submit score 17th) 原因 : Trust CVできなかった ・ (ほぼ初コンペで金圏にいたため正常な判断力を失っていた) ・ Leakageを探すことに時間を割いた結果、信頼できるCVを作ることができなかった • cf) Final Submitの選び方の基本的な考え方 • Trust CV • I always choose a weighted average ensemble of my safe models and select a relatively risky one. (bestfitting) • I never chose a submission I can’t explain, even with high public LB scores. (bestfitting) 反省点 : Final Submitを選ぶまでがKaggle
  19. 19. • コンペ概要 • 解法 • まとめ Agenda
  20. 20. まとめ • 1アイデアでゴールドが取れるコンペもある • エラー分析大切 • なぜ上手くいってないのかを分析して次の手につなげる • 人気コンペの裏コンペを選ぶ (Kaggle Meetup #4 のpocketさんの発表より) • 参加者過去最多となったHome Creditコンペが裏で開催されていた • Trust CV
  21. 21. Leakageのカラム見つけるところ以外の2位のスコアが出る スクリプト公開したのでよければ見てください! (要望があればLeakage見つけるスクリプトも出します) https://github.com/keeeeei79/Kaggle_santander_solution
  22. 22. 以上 ありがとうございました

×