SlideShare a Scribd company logo
R+pythonで
KAGGLEの2値予測に挑戦!
iAnalysis合同会社  インターン
岡  右⾥里里恵
1
Tokyo.R  LT  8/31  
 岡  右⾥里里恵(早⼤大理理⼯工M1)      データサイエンティスト⾒見見習い
 iAnalysis  でインターンを初めてちょうど2ヶ⽉月くらい
 出⾝身、住まい等          横浜(神奈奈川都⺠民)
 趣味  映画鑑賞,  シンセ        
 好きな物  redbull  
誰?
2
@0kayu
 研究  :  「fMRI画像解析による精神病の診断予測」                
を、やる予定(今まではシミュレーション主体の研究(物理理化学))  ←  
◦ 「そのために機械学習,  統計をフルに使えるようにならなければ!」
で、何をする人?
3
@0kayu
初心者
 R  ,  python  ,  機械学習,  統計は初めてまだ2ヶ⽉月ちょい
今回は ...
4
5
初心者でもできる?
python + R で、
KAGGLEの2値予測問題
KAGGLE中の私の脳内
→ 逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
 予測精度度を競うコンテスト
◦ 上位の参加者に賞金がつく!
◦ 2値問題, 時系列解析, 画像解析 etc...
KAGGLEとは?
6
amazon competition
 amazonの社員Aが、社内データaに  アクセスできるか
どうか?    →  0,  1の2値問題
 元データ  :  数値データ
◦ データのID  /  社員のID  /  その社員が所属している部
署のID  /  社員の肩書きのIDなどの数値データ
 学習⽤用データ  32769個        テストデータ      58921個
7
8
competition締め切りまであと一週間
どうやって始めればいいんだ....
進めればいいんだ....
KAGGLE中の私の脳内
→
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
逃げちゃだめだ
KAGGLEを進めた方法
9
1.	
  (定石?)	
  まずは公式が用意しているベンチマークを目指す
2.	
  Forumを参考にしてみる
(とりあえずいろいろな機械学習を試す..	
  ってのもいいけれど)
k近傍法
Rでgbmを使ってやれば、
ベンチマークを超えたよ!
	
  コード置くからみんな使って!
いやいや、pythonで僕の考
えた前処理	
  +	
  ロジスティック回帰
でスコア0.89くらい行くよ!	
   君のコード
を	
  ....	
  って変えたら
早くなったよ!
活発な意見交換の数々...
予測モデル作成
10
モデルその1 gbm(R)
 モデル1  gbm    (R  package  ʻ‘gbmʼ’)
11
元
の
変
数
9    
個
gbm
モデル1
gbm
:  勾配ブースティングモデル(アンサンブルモデル)
パラメータの更新のときに、微分を用いることで高速化
コードはこんな感じ
gbm10	
  <-­‐	
  gbm.fit(x	
  ,	
  y,distribuFon	
  ="bernoulli"	
  	
  	
  	
  	
  	
  	
  	
  #(0,1)予測なので
	
   	
   	
  	
  	
  	
  ,n.trees	
  =	
  GBM_ITERATIONS	
  	
  	
  #木の数
	
   	
   	
  	
  	
  	
  ,shrinkage	
  =	
  GBM_LEARNING_RATE	
  	
  	
  #学習率
	
   	
   	
  	
  	
  	
  ,interacFon.depth	
  =	
  GBM_DEPTH	
  	
   #木の深さ
	
   	
   	
  	
  	
  	
  ,n.minobsinnode	
  =	
  GBM_MINOBS	
  	
  	
  	
  	
  	
  #木のノードで観測する
                           	
  	
  観測値の数の最小
	
   	
   	
  	
  	
  ,bag.fracFon	
  =	
  0.5
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ,nTrain	
  =	
  nrow(trainingPy)
	
   	
   	
  	
  	
  	
  ,keep.data=FALSE
	
   	
   	
  	
  	
  	
  ,verbose	
  =	
  TRUE)
モデルその1 gbm(R)
 モデル1  gbm    (R  package  ʻ‘gbmʼ’)
12
元
の
変
数
9    
個
gbm
モデル1
gbm
:  勾配ブースティングモデル(アンサンブルモデル)
パラメータの更新のときに、微分を用いることで高速化
コードはこんな感じ
gbm10	
  <-­‐	
  gbm.fit(x	
  ,	
  y,distribuFon	
  ="bernoulli"	
  	
  	
  	
  	
  	
  	
  	
  #(0,1)予測なので
	
   	
   	
  	
  	
  	
  ,n.trees	
  =	
  GBM_ITERATIONS	
  	
  	
  #木の数
	
   	
   	
  	
  	
  	
  ,shrinkage	
  =	
  GBM_LEARNING_RATE	
  	
  	
  #学習率
	
   	
   	
  	
  	
  	
  ,interacFon.depth	
  =	
  GBM_DEPTH	
  	
   #木の深さ
	
   	
   	
  	
  	
  	
  ,n.minobsinnode	
  =	
  GBM_MINOBS	
  	
  	
  	
  	
  	
  #木のノードで観測する
                           	
  	
  観測値の数の最小
	
   	
   	
  	
  	
  ,bag.fracFon	
  =	
  0.5
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ,nTrain	
  =	
  nrow(trainingPy)
	
   	
   	
  	
  	
  	
  ,keep.data=FALSE
	
   	
   	
  	
  	
  	
  ,verbose	
  =	
  TRUE)
スコアがあがった!
	
  	
  (ベンチマーク)	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
     	
  →  	
    (モデル1	
  	
  	
  gbm	
  )
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  0.61	
             0.87	
  	
  	
  	
  	
  	
  	
  
さらなる精度の高みへ....
前処理をしてみよう
13
いやいや、pythonで僕の考
えた前処理	
  +	
  ロジスティック回帰
でスコア0.89くらい行くよ!	
  
先ほどのForumより
モデルその2
グルーピング+変数選択→機械学習(python+R)
14
元
の
変
数
9    
個
gbm
モデル1
変数
選択
  gbm+グルーピング
ロジスティック回帰
+グルーピング
グルー
ピング
変
数
8    
個
モデル2
モデル3
元の変数,  8個    
2つの変数の組合わせ,  8C2個
3つの変数の組み合せ,  8C3個
  =  92個!    
ロジスティック回帰で
交差検定をしてAUCス
コアが良良かった変数だけ
採⽤用!
92個→26個
結果
 338位	
  (1693チーム中)
15
他のモデルは...?
モデル3 ロジスティック + グルーピングが
好成績!
モデル スコア(AUC)
gbm	
  (変数9個)	
  
gbm	
  +	
  グルーピング
(変数26個)
ロジスティック回帰
+グルーピング(変数26)
0.878
0.875
0.895
モデルごとのスコア比較
16
gbmは
元の変数を変えても
予測結果に差がない?
上記3つモデルから得
られた結果の平均値
0.884
あまり改善がないようだ
orz
終わってみて
 RとPythonを使ってみて
◦ R  :  パッケージたくさんあるけど、モデルの作り⽅方の関数がだいた
い同じだからやりやすかった!!
◦ R  :  プロットがしやすい気がした
◦ Python:複雑な解析/⾃自分でモデルを構築するのに向いている?
 使った環境,  パッケージ等
◦ R  (gbm)    
◦ Python(pandas,  sklearn,  numpy)  +  ipython  notebook
 私が思うKAGGLE
◦ 予測精度度を競っているので、どのパラメーターが重要だったとかは
⾃自分で勉強しないとだめ。
17
現在は...
 KAGGLE	
  またもや2値予測に挑戦中!	
  	
  
◦ ホームページ構造の文字データ	
  +	
  数値データから面白い/面白
くないサイトを予測	
  
◦ テキストマイニング?	
  ナイーブベイズ?	
  うーん、やってみたい!
18
ありがとうございました !!
19
contact@ianalysis.jp
ianalysis.jp
我々はトップデータサイエンティスト集団です
分析⼒力力を駆使し、クライアント様のビジネスへの
データ活⽤用を促進できるよう、⽇日々活動しております。
参考文献, 使ったコード
20
http://nbviewer.ipython.org/6175061/amazon_logistic.ipynb
hdp://www.kaggle.com/c/amazon-­‐employee-­‐access-­‐challenge/forums/t/4840/gbm-­‐code-­‐
auc-­‐0-­‐876
gbm.Rのフォーラム(とコード)
・Kaggle	
  amazon	
  compe>>on	
  のForumより
ロジスティック回帰のフォーラム(とコード)
今回使ったpythonのコード
hdp://www.kaggle.com/c/amazon-­‐employee-­‐access-­‐challenge/forums/t/4838/python-­‐code-­‐to-­‐
achieve-­‐0-­‐90-­‐auc-­‐with-­‐logisFc-­‐regression

More Related Content

PDF
Rnn+lstmを理解する
PDF
現在のDNNにおける未解決問題
PDF
ほぼノン・プログラミングでAI × G空間分析(FOSS4G 2019 KOBE.KANSAI ハンズオン)
PDF
デジタル信号処理をDSP入札に応用
PDF
効果のあるクリエイティブ広告の見つけ方(Contextual Bandit + TS or UCB)
PPTX
クリスマス?
KEY
FDRの使い方 (Kashiwa.R #3)
PDF
GCEをTensorFlowの「計算エンジン」にする
Rnn+lstmを理解する
現在のDNNにおける未解決問題
ほぼノン・プログラミングでAI × G空間分析(FOSS4G 2019 KOBE.KANSAI ハンズオン)
デジタル信号処理をDSP入札に応用
効果のあるクリエイティブ広告の見つけ方(Contextual Bandit + TS or UCB)
クリスマス?
FDRの使い方 (Kashiwa.R #3)
GCEをTensorFlowの「計算エンジン」にする

Viewers also liked (20)

PDF
できない英語を駆使してKaggleに挑戦してみた
PDF
ロジスティック回帰の考え方・使い方 - TokyoR #33
PDF
RcppEigen and SVD
PDF
Doradora09 lt tokyo_r33
PDF
相関係数と決定係数~回帰係数とその不偏性も
 
PDF
因子分析
PPTX
Tokyo r33 beginner
PDF
21世紀の手法対決 (MIC vs HSIC)
PDF
とある金融屋の統計技師が時系列解析してみた
PDF
Rで計量時系列分析~CRANパッケージ総ざらい~
PDF
Tokyo R LT 20131109
PPTX
ニコニコ動画タグネットワーク
PPTX
偽相関と偏相関係数
PPTX
Fluentd,mongo db,rでお手軽ログ解析環境
PDF
Collaborativefilteringwith r
PDF
Extend R with Rcpp!!!
PDF
第31回TokyoR LT資料
PPTX
20131109 TokyoR#35 Rでネットワーク解析とGIS
PDF
中の人が語る seekR.jp の裏側
できない英語を駆使してKaggleに挑戦してみた
ロジスティック回帰の考え方・使い方 - TokyoR #33
RcppEigen and SVD
Doradora09 lt tokyo_r33
相関係数と決定係数~回帰係数とその不偏性も
 
因子分析
Tokyo r33 beginner
21世紀の手法対決 (MIC vs HSIC)
とある金融屋の統計技師が時系列解析してみた
Rで計量時系列分析~CRANパッケージ総ざらい~
Tokyo R LT 20131109
ニコニコ動画タグネットワーク
偽相関と偏相関係数
Fluentd,mongo db,rでお手軽ログ解析環境
Collaborativefilteringwith r
Extend R with Rcpp!!!
第31回TokyoR LT資料
20131109 TokyoR#35 Rでネットワーク解析とGIS
中の人が語る seekR.jp の裏側
Ad

R+pythonでKAGGLEの2値予測に挑戦!