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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

3,726

Published on

8/31 TokyoR LT …

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

0 Comments
20 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,726
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
51
Comments
0
Likes
20
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×