SlideShare a Scribd company logo
1 of 24
「うまい飯が作りたい」
@kur0cky
2018/11/10 Tokyo.R
Who ?
<基本>
Twitter :@kur0cky_y
職業 :大学院生(経営工学,M1)
研究 :株式市場分析,異常検知,需要予測,時系列解析
趣味 :音楽,映画,飲食
<最近>
活動 :前々回で応用セッションした.就活はしてない
悩み :進路,モテたい
<基本>
Twitter :@kur0cky_y
職業 :大学院生(経営工学,M1)
研究 :株式市場分析,異常検知,需要予測,時系列解析
趣味 :音楽,映画,飲食
<最近>
活動 :前々回で応用セッションした.就活はしてない
悩み :進路,モテたい
Who ?
料理がうまい奴はモテるらしい
よくある話
料理とデータ分析は似てるらしい
???
よくある話
料理とデータ分析は似てるらしい
???
データ分析がうまい奴はモテる!!
メシマズ
Why メシマズ
Google先生に聞いた 「料理 下手 なぜ」
• 味見をしない →
• レシピを守らない →
• 段取りが悪い →
• 献立の組み立てが下手 →
• 料理の見た目が悪い →
Why メシマズ
Google先生に聞いた 「料理 下手 なぜ」
• 味見をしない → 味見しろ
• レシピを守らない → レシピ守れ
• 段取りが悪い → そんなこと言われたって
• 献立の組み立てが下手 → そんなこと言われたって
• 料理の見た目が悪い → そんなこと言われたって
メシマズ脱却したい!
<料理>
• 食材
• キッチン設備(小〜中規模)
• 調理道具
<データ分析>
• データ
• パソコン,仮想マシン
• R,RStudio,tidyverse
設備は神,腕前が残念
メシマズ脱却したい!
<料理>
• 食材
• キッチン設備(小〜中規模)
• 調理道具
• レシピ
<データ分析>
• データ
• パソコン,仮想マシン
• R,RStudio,tidyverse
•???
かわいい
https://github.com/tidymodels/recipes
tidy ナンデッ!?
https://github.com/tidymodels/recipes
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
読み込んでみた
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
あった
パッケージ recipes
• パッケージ群 tidymodels に含まれてる
• tag_attach(“text analysis”)でkerasとtidytextも読み込める
何をするパッケージ???
• 前処理を助けてくれる!!!
• 精神を削らずにデザイン行列の処理!!
例:「さっきのBox-Coxのλどこいったっけ…」
ざっくり使い方
1. 白い紙を用意
2. 手順を記す
3. 書き終える
4. 見ながら調理
1. recipe() %>%
2.
3. prep() %>%
4. bake()
library(recipes) # 読み込む
data(credit_data) # 今回使うデータ
head(credit_data) # 先頭確認
クレジットデータ,Statusが目的変数
# 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()はパラメータを決定する役割
# レシピができたら調理
processed <- bake(rec1, newdata = credit_data)
# レシピは使い回せる!!
# test <- bake(rec1, newdata = new_credit)
head(processed)
もろもろの処理ができてるっぽい ダミー変数もできてるっぽい
まとめ
• 細かい機能は紹介しきれなかったが,クソ便利!!
• recipes パッケージでデータ分析上手になってモテよう
• 用意されたstep_hogehoge()を一つずつチェックするだけでも
勉強になる
Enjoy!!
「データ分析うまくてもモテなかった」
付録:便利な 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
付録:便利な 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()
他と線形の関係にある変数を削除
付録:便利な step_hoge()
• step_num2factor()
数値をファクターに変換
• step_string2factor()
文字列をファクターに変換
• step_factor2string()
ファクターを文字列に変換
• step_ordinalscore()
順序カテゴリを数値に変換
• step_novel()
初見のカテゴリに新しいファクターを
割り当て(主にテストデータで)
• step_center()
データの中心からの距離を算出
• step_depth()
データの中心からの近さを算出(近いほ
ど大きい)
• step_regex()
正規表現に基づいてダミー変数を作成.
文字列処理に便利
• step_bs()
Bスプラインを用いた特徴量抽出

More Related Content

What's hot

PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)Yasunori Ozaki
 
統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333Issei Kurahashi
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめYuichiro MInato
 
2 4.devianceと尤度比検定
2 4.devianceと尤度比検定2 4.devianceと尤度比検定
2 4.devianceと尤度比検定logics-of-blue
 
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリングベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング宏喜 佐野
 
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes FactorShushi Namba
 
PRML輪読#4
PRML輪読#4PRML輪読#4
PRML輪読#4matsuolab
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38horihorio
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門shima o
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門Momoko Hayamizu
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)RyuichiKanoh
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)Kota Matsui
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説弘毅 露崎
 
金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデルKei Nakagawa
 
最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしないPyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしないToshihiro Kamishima
 
MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデルHiroshi Shimizu
 
PRML読書会#2,#3資料
PRML読書会#2,#3資料PRML読書会#2,#3資料
PRML読書会#2,#3資料Hiromasa Ohashi
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシンShinya Shimizu
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章Hakky St
 

What's hot (20)

PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
 
統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめ
 
2 4.devianceと尤度比検定
2 4.devianceと尤度比検定2 4.devianceと尤度比検定
2 4.devianceと尤度比検定
 
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリングベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
 
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor
 
PRML輪読#4
PRML輪読#4PRML輪読#4
PRML輪読#4
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説
 
金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしないPyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
 
MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデル
 
PRML読書会#2,#3資料
PRML読書会#2,#3資料PRML読書会#2,#3資料
PRML読書会#2,#3資料
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
 

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