SlideShare a Scribd company logo
1 of 29
猫なら取れる金メダル
プログラマーから見た機械学習
猫でも取れる・取れない金メダル
猫でも取れる金メダル
・Recruitコンペでのモデル(Master向け)
猫しか取れない金メダル
・素人でも金メダルを取る方法論(Novice向け)
自己紹介
・名前:pocket@Kaggle
・仕事:証券会社のバックエンドエンジニア
・能力
・プログラマー歴5~6年
・英語はチョットデキル
・機械学習/統計/数学は素人
猫でも取れる金メダル
Recruitコンペのモデル
目次
・コンペ概要
・解法
・学んだこと
概要
・お題
飲食店の来客数を予測する
・評価尺度
実際の来客数と予測値の対数に対し、RMSE
・データ ※200k行ほど
店情報、予約。+気象データ(外部)
2016/01/01~2017/04/22(train)
2017/04/23~2017/05/31(test)
・コンペ開催期間
2017/11/29~2018/02/06
データ詳細
日付 店名 ジャンル 場所 来客数
2016/01/01 A店 焼き肉 東京 20名
2016/01/01 B店 そば 福岡 1名
2016/01/02 A店 焼き肉 東京 30名
2016/01/02 B店 そば 福岡 5名
店ID 予約日 来店日 予約者数
A店 2017/04/22 2017/04/22 10名
B店 2017/04/22 2017/04/23 3名
A店 2017/04/22 2017/04/24 20名
B店 2017/04/22 2017/04/24 3名
こんな感じです(+天気と店の経度緯度)
予約データはtrain期間中に予約されたもののみ
目次
・コンペ概要
・解法
・学んだこと
解法概要
・モデル概要
LightGBMで作成した、週毎の時系列予想モデル
・特徴量
Rossman Competitionの優勝解法を参考
過去n週の統計情報が中心
・Validation
試行錯誤
trainの一週先がtestデータ兼Validation. これを四組使用
・アンサンブル(追加したモデル)
・外れ値除外モデル
・一年分のデータがある店だけで学習したモデル
・第二週だけ日毎のモデルを作成
気づき:予約の減衰
予約は日を追うごとに減る
⇒日毎、週毎にモデルを作れば、より正確に
※作らないと予約情報を過大評価してしまう。
PublicLBが直近一週間なので、予約情報を過大評価した人がPrivateで多数転落
統計情報のシフト
統計情報をn週分、シフトさせた。
例えば、2週先を予想するモデルでは、2週先にシフト
2017/03/12 04/08 04/16 04/22
日付 店名 先月平均 先月中央 来客数
2017/04/16 A店 12 10.5 20名
2017/04/17 A店 12 10.5 21名
2017/04/18 A店 12 10.5 30名
2017/04/19 A店 12 10.5 25名
週毎のモデル
シフト統計情報のモデルから予想を行う
予想
2017/02/19 03/18 03/26 04/01
2017/02/26 03/25 04/02 04/08
2017/03/05 04/01 04/09 04/15
2017/03/12 04/08 04/16 04/22
2017/03/26 04/22 05/0504/29
Private LB
※他には日毎のモデルなども作成
Public LB
祝日処理
土曜>金曜>日曜>その他 の順番で来客数が多い
⇒翌日が休みかどうかに左右される?
日付 店名 ジャンル 場所 予約 曜日 翌日休フラグ 来客数
2016/02/09 A店 焼き肉 東京 10名 火曜 0 20名
2016/02/10 A店 焼き肉 東京 10名 水曜 1 20名
2016/02/11 A店 焼き肉 東京 10名 木曜(祝) 0 20名
2016/02/12 A店 焼き肉 東京 10名 金曜 1 20名
※他にはGWを金曜扱いにするなど、
チーム毎に様々な手法があった。
Validation
何週間か予想させて、その結果を評価 ※他にはGWを数日hold outするなど、
GWに向けた確認なども行いました
2016/01/01 04/08 04/16 04/22
評価値
2016/01/01 04/01 04/08 04/15
評価値
2016/01/01 03/25 04/01 04/07
評価値
目次
・コンペ概要
・解法
・学んだこと
優勝チームの手法
データを増幅していた。
「Label set」はLeakが起きないように工夫されている。
※例えば、予約情報は、「Label set」には「Statistical set」の間にされた予約のみを含めている。
全体的な手法の傾向
・LightGBM系が多かった
優勝チーム含め、LightGBMが多く使用された
・ニューラルネットは苦戦していた
データが少なめだったのが原因?
コンペ後、data augmentationでそれなりの精度と判明
・巨大なモデルStackingは見当たらなかった。
弱学習器などをStackする手法は全くなかった。
理由はよくわかりません・・・
データは全て使ってみよう
上級者にはたぶん当たり前の話ですが、
提供されたデータは全て使って学習させてみましょう。
コンペ序盤、12月は忘年会で来客数が多いため(ドメイン知識)
12月を除去して学習したのですが、かなり精度が悪かったです。
月を特徴量として含めれば、LightGBMはきちんと違いを学習。
⇒LightGBMの方が自分より賢い
猫しか取れない金メダル
素人が金メダルを取る方法論
目次
・学び方
・攻略法
・最後に
機械学習歴
・2016秋:Courseraの機械学習コース
四話くらいで飽きる
・2016冬:Kaggleに取り組もうと思い立つ
XGBoostがWindowsに入らなくて挫折
・2017秋:LightGBMが入ったのでPortoSeguro
何すればいいのかわからなくて挫折
・2017冬:お正月を使ってRecruitコンペ
Rossmanコンペのサル真似をしたら金メダル圏に入ってしまった
学ぶべきこと
・機械学習ライブラリの使い方
試行錯誤したらいける。
処理時間短縮のためデータを削ったデバッグ用データを作る
・Kernelのコードが読めるように
手元で動かす。
printデバッグ、同じAPI叩いたり
・Discussionが理解できるように
わからない用語などはググって調べる
学んでいないこと(できた方がよい)
・機械学習の理論
想像力と実験で補う
・数学・統計
あまり使わない
・ニューラルネット
コンペによってはGBDTのみでいける
・プログラミングの文法
必要になった文法だけ学ぶ
Classも書かずに終わりました
目次
・学び方
・攻略法
・最後に
コンペの本質的テクニック
・実験速度が全て
チューニングやアンサンブルは最後
前処理は一回やって吐き出す
ハイスペックPC
・Validationが全て
羅針盤が狂っていると何もかも無駄
・過去コンペのSolutionを真似る
まずはKernelやSolutionに沿って実装してみる
コンペの非本質的テクニック
・コンペの選定
データが少ない初心者に優しいコンペを選ぶ
人気のあるコンペが同時開催されているときを狙う
・重要なDiscussionは見逃さない
最低限、Hotnessでソートして読む
議論が伸びている場合、重要なヒントがあることも
・時間を投入する
いくら実験速度が速くても、
結果として実験回数が少なければ意味なし
くじけないために
・途中、スコアが伸びなかった時
・チームを組む
・金メダル取ります、と宣言することで自分を追い込む
・「世界一になるぞー」と独り言をつぶやきながら帰宅する
目次
・学び方
・攻略法
・最後に
プログラマーから見た機械学習
・大衆化
機械学習未経験でも金メダル級のモデルが作れる
ライブラリの進化、環境構築方法の進化⇒Windows可
・Kaggle楽しい!
楽しいKaggleみんなで学ぼう

More Related Content

What's hot

強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
 

What's hot (20)

backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
[DL輪読会] マルチエージェント強化学習と心の理論
[DL輪読会] マルチエージェント強化学習と心の理論[DL輪読会] マルチエージェント強化学習と心の理論
[DL輪読会] マルチエージェント強化学習と心の理論
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
多目的強凸最適化のパレート集合のトポロジー
多目的強凸最適化のパレート集合のトポロジー多目的強凸最適化のパレート集合のトポロジー
多目的強凸最適化のパレート集合のトポロジー
 
Devsumi 2018summer
Devsumi 2018summerDevsumi 2018summer
Devsumi 2018summer
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
モデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留するモデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留する
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
 
失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
 
MLOps入門
MLOps入門MLOps入門
MLOps入門
 
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision TreeNIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
 
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
 
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
 

Neko kin