こんにちは,shun(@datasciencemore)です!!
今回はtidymodelsの{parsnip}についてやっていきます.
0.{parsnip}ってなに??
{parsnip}は,学習ルール(アルゴリズムとハイパラ)の設定に関するパッケージだよ!!
{parsnip}のおかげでRの様々な機械学習パッケージを統一的なインターフェースで表現できるんだ!!
学習ルールとは,アルゴリズムとハイパーパラメータを合わせたもので,学習ルールに従って,正解パターンを学習することができるのでしたね.
その学習ルールの設定をするためのパッケージが{parsnip}なのです
この{parsnip}の特徴は何といっても設定が簡単なことです!!
通常はパッケージを使うのにそのパッケージの使い方を学習しなければなりません.
例えば,勾配ブースティングで有名なパッケージにxgboost,lightgbm,catboostがありますよね
これらのパッケージはアルゴリズムの処理内容は似ているものの,使い方は結構違います.
なので,これらを使用するためにはそれぞれの使用方法を学習する必要があります.
ところが,{parsnip}を使用するといちいち各パッケージの使い方を学習する必要はありません.
{parsnip}は,統一的なインターフェースなのでめちゃくちゃ簡単に学習ルールを記述することができます!
それにより,パッケージ特有の使い方に悩まされることなく,様々な学習ルールを試すことができるようになるのです!!
1.アルゴリズムとパッケージ
{parsnip}で使用できるアルゴリズムとパッケージは次の図のとおりです.
こんな感じで各アルゴリズムに対して色々なパッケージを使用することができるのです.
ちなみに{parsnip}で使用できるアルゴリズムはもっとたくさんありますが,ここでは使用頻度の高い重要なアルゴリズムを超厳選しております.
他のアルゴリズムについてはこちらの公式HPをご参照ください.
2.ハイパラ
各アルゴリズムに対するハイパラは次のとおりです.
3.コーディング
{parsnip}は,次のようにコーディングします.
こんな感じで,
①アルゴリズム
②ハイパラ
③パッケージ
④予測種類
をパイプ演算子でつなげてあげればいいだけです.
めっちゃ簡単ですね!!
上の例なら
①アルゴリズム ⇒ boost_tree(勾配ブースティング)
②ハイパラ ⇒ tree_depth = 3,trees = 100,min_n = 30
③パッケージ ⇒ xgboost
④予測種類 ⇒ classification(分類)
って意味です
実際のコーディングも念のため載せておきますね!
上の図と全く同じですけど笑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
boost_tree( tree_depth = 5, trees = 100, min_n = 30 ) %>% set_engine('xgboost') %>% set_mode('classification') Boosted Tree Model Specification (classification) Main Arguments: trees = 100 min_n = 30 tree_depth = 5 Computational engine: xgboost |
こんな感じで,設定した学習ルールが一目でわかりますね!!
ハイパーパラメータは全部設定しなくてもOKです.
上の例だと,tree_depth, trees, min_nの3種類しか設定していないですよね.
この場合,設定しなかったハイパーパラメータは初期値が自動的に設定されるようになっています.
ちなみに初期値はパッケージに依存しています.
RstudioのAddins機能「Generate parsnip model specifications」を使うと簡単にコーディングすることができます.
まとめ
今回は以下をやってきました.
- アルゴリズムとパッケージ
- ハイパーパラメータ
- コーディング
{parsnip}は,学習ルール(アルゴリズムとハイパラ)の設定に関するパッケージです.
{parsnip}は統一的なインターフェースにより,パッケージ特有の使い方に悩まされることなく,様々な学習ルールを試すことができます!!
実際にコーディングするとその便利さがわかりますよ~
それでは,お疲れ様でした!