R+pythonでKAGGLEの2値予測に挑戦!
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 3,758 views

8/31 TokyoR LT

8/31 TokyoR LT
#補足 平均値をとってスコアがあがるパターンもあります。

Statistics

Views

Total Views
3,758
Slideshare-icon Views on SlideShare
3,694
Embed Views
64

Actions

Likes
16
Downloads
37
Comments
0

13 Embeds 64

https://twitter.com 38
https://www.facebook.com 15
https://m.facebook.com&_=1378006104472 HTTP 1
https://m.facebook.com&_=1378005659495 HTTP 1
https://m.facebook.com&_=1378003098439 HTTP 1
https://m.facebook.com&_=1378001590002 HTTP 1
https://m.facebook.com&_=1378001575009 HTTP 1
https://m.facebook.com&_=1377998552513 HTTP 1
https://m.facebook.com&_=1377997296231 HTTP 1
https://m.facebook.com&_=1377996899585 HTTP 1
https://m.facebook.com&_=1377994493640 HTTP 1
https://m.facebook.com&_=1377994393524 HTTP 1
https://m.facebook.com&_=1378040405984 HTTP 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • 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