Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rパッケージ recipes の紹介 「うまい飯を作る」

557 views

Published on

第74回 Tokyo.R LT
recipesパッケージの紹介

Published in: Food
  • Be the first to comment

  • Be the first to like this

Rパッケージ recipes の紹介 「うまい飯を作る」

  1. 1. 「うまい飯が作りたい」 @kur0cky 2018/11/10 Tokyo.R
  2. 2. Who ? <基本> Twitter :@kur0cky_y 職業 :大学院生(経営工学,M1) 研究 :株式市場分析,異常検知,需要予測,時系列解析 趣味 :音楽,映画,飲食 <最近> 活動 :前々回で応用セッションした.就活はしてない 悩み :進路,モテたい
  3. 3. <基本> Twitter :@kur0cky_y 職業 :大学院生(経営工学,M1) 研究 :株式市場分析,異常検知,需要予測,時系列解析 趣味 :音楽,映画,飲食 <最近> 活動 :前々回で応用セッションした.就活はしてない 悩み :進路,モテたい Who ? 料理がうまい奴はモテるらしい
  4. 4. よくある話 料理とデータ分析は似てるらしい ???
  5. 5. よくある話 料理とデータ分析は似てるらしい ??? データ分析がうまい奴はモテる!!
  6. 6. メシマズ
  7. 7. Why メシマズ Google先生に聞いた 「料理 下手 なぜ」 • 味見をしない → • レシピを守らない → • 段取りが悪い → • 献立の組み立てが下手 → • 料理の見た目が悪い →
  8. 8. Why メシマズ Google先生に聞いた 「料理 下手 なぜ」 • 味見をしない → 味見しろ • レシピを守らない → レシピ守れ • 段取りが悪い → そんなこと言われたって • 献立の組み立てが下手 → そんなこと言われたって • 料理の見た目が悪い → そんなこと言われたって
  9. 9. メシマズ脱却したい! <料理> • 食材 • キッチン設備(小〜中規模) • 調理道具 <データ分析> • データ • パソコン,仮想マシン • R,RStudio,tidyverse 設備は神,腕前が残念
  10. 10. メシマズ脱却したい! <料理> • 食材 • キッチン設備(小〜中規模) • 調理道具 • レシピ <データ分析> • データ • パソコン,仮想マシン • R,RStudio,tidyverse •???
  11. 11. かわいい https://github.com/tidymodels/recipes
  12. 12. tidy ナンデッ!? https://github.com/tidymodels/recipes
  13. 13. library(tidymodels) #> ── Attaching packages ────────────────────────────────── tidymodels 0.0.1 ── #> ✔ ggplot2 3.1.0 ✔ recipes 0.1.3 #> ✔ tibble 1.4.2 ✔ broom 0.5.0 #> ✔ purrr 0.2.5 ✔ yardstick 0.0.1 #> ✔ dplyr 0.7.7 ✔ infer 0.3.1 #> ✔ rsample 0.0.2 #> ── Conflicts ────────────────────────────────────── tidymodels_conflicts() ── #> ✖ rsample::fill() masks tidyr::fill() #> ✖ dplyr::filter() masks stats::filter() #> ✖ dplyr::lag() masks stats::lag() #> ✖ recipes::step() masks stats::step() tidymodels 読み込んでみた
  14. 14. library(tidymodels) #> ── Attaching packages ────────────────────────────────── tidymodels 0.0.1 ── #> ✔ ggplot2 3.1.0 ✔ recipes 0.1.3 #> ✔ tibble 1.4.2 ✔ broom 0.5.0 #> ✔ purrr 0.2.5 ✔ yardstick 0.0.1 #> ✔ dplyr 0.7.7 ✔ infer 0.3.1 #> ✔ rsample 0.0.2 #> ── Conflicts ────────────────────────────────────── tidymodels_conflicts() ── #> ✖ rsample::fill() masks tidyr::fill() #> ✖ dplyr::filter() masks stats::filter() #> ✖ dplyr::lag() masks stats::lag() #> ✖ recipes::step() masks stats::step() tidymodels あった
  15. 15. パッケージ recipes • パッケージ群 tidymodels に含まれてる • tag_attach(“text analysis”)でkerasとtidytextも読み込める 何をするパッケージ??? • 前処理を助けてくれる!!! • 精神を削らずにデザイン行列の処理!! 例:「さっきのBox-Coxのλどこいったっけ…」
  16. 16. ざっくり使い方 1. 白い紙を用意 2. 手順を記す 3. 書き終える 4. 見ながら調理 1. recipe() %>% 2. 3. prep() %>% 4. bake()
  17. 17. library(recipes) # 読み込む data(credit_data) # 今回使うデータ head(credit_data) # 先頭確認 クレジットデータ,Statusが目的変数
  18. 18. # recipe()で初期化.目的変数と説明変数を明示的に指定 rec <- recipe(credit_data, Status ~ .) # 前処理操作 # step_hoge() をつないでいくことでフローを記述 rec1 <- rec %>% step_center(all_numeric()) %>% # 中心化 step_scale(all_numeric()) %>% # 標準化 step_knnimpute(all_predictors(), K=5) %>% # 欠損をk近傍法で埋める step_dummy(all_predictors(), -all_numeric()) %>% # ダミー変数作成 prep() # 完了 • step_hogehoge()で前処理 • all_numeric()やall_predictor()で適用する変数を指定 列名でも指定できる • prep()はパラメータを決定する役割
  19. 19. # レシピができたら調理 processed <- bake(rec1, newdata = credit_data) # レシピは使い回せる!! # test <- bake(rec1, newdata = new_credit) head(processed) もろもろの処理ができてるっぽい ダミー変数もできてるっぽい
  20. 20. まとめ • 細かい機能は紹介しきれなかったが,クソ便利!! • recipes パッケージでデータ分析上手になってモテよう • 用意されたstep_hogehoge()を一つずつチェックするだけでも 勉強になる
  21. 21. Enjoy!! 「データ分析うまくてもモテなかった」
  22. 22. 付録:便利な step_hoge() • step_inverse() 逆変換 • step_log() 対数変換 • step_sqrt() 平方根 • step_logit() ロジット変換 • step_invlogit() 逆ロジット変換 • step_BoxCox() Box-Cox変換.正規分布に近づく • step_YeoJohnson Yeo-Johnson変換.Box-Coxの改良.負 値でもOK • step_relu() 発火関数.NNでよく使うやつ • step_hyperbolic() ハイパボリック変換.デフォルトはsin
  23. 23. 付録:便利な step_hoge() • step_meanimpute() 平均値で欠損補完 • step_modeimpute() 最頻値で欠損補完 • step_rollimpute() スライド窓を利用した欠損補完. デフォルトは中央値 • step_knnimpute() k近傍法で欠損補完 • step_bagimpute() 決定木のバギングで欠損補完 • step_rm() 名前や型に基づいて変数削除 • step_corr() 閾値より上の相関がある変数を片方削除 • step_zv() 分散が0の変数削除 • step_nzv() 分散が0に近い変数の削除 • step_lincomb() 他と線形の関係にある変数を削除
  24. 24. 付録:便利な step_hoge() • step_num2factor() 数値をファクターに変換 • step_string2factor() 文字列をファクターに変換 • step_factor2string() ファクターを文字列に変換 • step_ordinalscore() 順序カテゴリを数値に変換 • step_novel() 初見のカテゴリに新しいファクターを 割り当て(主にテストデータで) • step_center() データの中心からの距離を算出 • step_depth() データの中心からの近さを算出(近いほ ど大きい) • step_regex() 正規表現に基づいてダミー変数を作成. 文字列処理に便利 • step_bs() Bスプラインを用いた特徴量抽出

×