SlideShare a Scribd company logo
1 of 20
Download to read offline
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

Viewers also liked

できない英語を駆使してKaggleに挑戦してみた
できない英語を駆使してKaggleに挑戦してみたできない英語を駆使してKaggleに挑戦してみた
できない英語を駆使してKaggleに挑戦してみたKeisuke Tokuda
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33horihorio
 
RcppEigen and SVD
RcppEigen and SVDRcppEigen and SVD
RcppEigen and SVDXiangze
 
Doradora09 lt tokyo_r33
Doradora09 lt tokyo_r33Doradora09 lt tokyo_r33
Doradora09 lt tokyo_r33Nobuaki Oshiro
 
相関係数と決定係数~回帰係数とその不偏性も
相関係数と決定係数~回帰係数とその不偏性も相関係数と決定係数~回帰係数とその不偏性も
相関係数と決定係数~回帰係数とその不偏性もT T
 
21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)Toru Imai
 
とある金融屋の統計技師が時系列解析してみた
とある金融屋の統計技師が時系列解析してみたとある金融屋の統計技師が時系列解析してみた
とある金融屋の統計技師が時系列解析してみたNagi Teramo
 
Rで計量時系列分析~CRANパッケージ総ざらい~
Rで計量時系列分析~CRANパッケージ総ざらい~ Rで計量時系列分析~CRANパッケージ総ざらい~
Rで計量時系列分析~CRANパッケージ総ざらい~ Takashi J OZAKI
 
Tokyo R LT 20131109
Tokyo R LT 20131109Tokyo R LT 20131109
Tokyo R LT 20131109tetsuro ito
 
ニコニコ動画タグネットワーク
ニコニコ動画タグネットワークニコニコ動画タグネットワーク
ニコニコ動画タグネットワークTeruki Shinohara
 
偽相関と偏相関係数
偽相関と偏相関係数偽相関と偏相関係数
偽相関と偏相関係数Teruki Shinohara
 
Fluentd,mongo db,rでお手軽ログ解析環境
Fluentd,mongo db,rでお手軽ログ解析環境Fluentd,mongo db,rでお手軽ログ解析環境
Fluentd,mongo db,rでお手軽ログ解析環境Michitaka Iida
 
Collaborativefilteringwith r
Collaborativefilteringwith rCollaborativefilteringwith r
Collaborativefilteringwith rTeito Nakagawa
 
Extend R with Rcpp!!!
Extend R with Rcpp!!!Extend R with Rcpp!!!
Extend R with Rcpp!!!mickey24
 
第31回TokyoR LT資料
第31回TokyoR LT資料第31回TokyoR LT資料
第31回TokyoR LT資料tetsuro ito
 
20131109 TokyoR#35 Rでネットワーク解析とGIS
20131109 TokyoR#35 Rでネットワーク解析とGIS20131109 TokyoR#35 Rでネットワーク解析とGIS
20131109 TokyoR#35 Rでネットワーク解析とGISMed_KU
 
中の人が語る seekR.jp の裏側
中の人が語る seekR.jp の裏側中の人が語る seekR.jp の裏側
中の人が語る seekR.jp の裏側Takekatsu Hiramura
 

Viewers also liked (20)

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

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