Fukuoka.R#15でtidymodelsについての発表を行いました
先週末(2019年8月31日)に開催されたFukuoka.R#15 へ参加・発表してきました。Fukuoka.Rはその名の通り、九州・博多を中心として活動するRコミュニティです。私は茨城県つくば市に住んでいるので、会場のLINE Fukuokaまでは直線距離でおよそ928km離れた場所からの参加というわけです。いやはや遠い。遠いですが、参加してよかったと思える会でした。
このあとの発表資料です。「tidymodelsによるモデル構築と運用 」 #FukuokaR 毎度のことですが、今回は資料を作っている自分自身が大変勉強になりました。 https://t.co/pQDkuFn9nq pic.twitter.com/slqeaBuvcv
— Uryu Shinya (@u_ribo) August 31, 2019
以下、簡単にですが内容の振り返りと当日の発表では言えなかったことを書きます。
発表内容
「tidymodelsによるモデル構築と運用」という題での発表です。
tidymodelsに含まれるパッケージについて言及した日本語を記事をしばしば見かけるようになりました。私自身もいくつか記事を書いています。
しかしtidymodelsの全容、包括的な話題を扱っている日本語の情報は限られています。そこで今回は、モデルの構築から運用に至るまでの手順をパッケージの利用方法とともに紹介する形式としました。具体的には{rsample}
で対象データの分割、リサンプリング、{recipes}
でデータ前処理、特徴量の用意、{parsnip}
でのモデル実行、最後に{yardstick}
による性能評価です。
スライド資料なので、言葉足らずな面があるかと思います。 テキストと合わせた内容は id:dropout009 さんの記事 (その1,その2)を読んでおけばOKかなと感じる部分もあります。資料作成時も大変参考となりました。
今回は30分の枠でした。Tokyo.Rでは20分の枠が一般的なのでちょっと長めですね。たっぷりと話すことができました(その分詰め込みすぎて余裕がなくなってしまったという本末転倒な反省も)。tidymodelsはパイプフレンドリーで関数や操作性に一貫性があり、またパッケージがタスクに応じて分割されているので紹介もしやすかったです。
発表から除外したもの
最後の方は説明が複雑になる、時間も足りないということもあり、駆け足で説明不足になってしまいました。また、運用をタイトルに入れていたので{drake}
、{butcher}
の紹介をと考えていましたが明らかに時間が足りない、それよりは他の説明に時間を割こうとして除外しました。そのため、こちらで簡単に補足させていただきます。
{drake}
はtidymodelsの支配下にないパッケージであり、モデルとは関係しません。しかしモデル構築の作業をワークフロー化することで、再現性を確保、手間を減らすことが期待できます。おすすめです。
また当初、{butcher}
を組みこもうとしていましたが結局除外してしまいました。このパッケージはモデルオブジェクトのサイズを減少させるのに効果的です。というのもモデル構築の過程でオブジェクトサイズが増大することがあるためです。関数の環境内で余分なオブジェクトを生成しているとそれが影響する感じでしょうか(よくわかっていない部分があります…)。{butcher}
パッケージの名前は肉屋の従業員。その名の通り、余分なデータを捌きます。{butcher}を利用すると先のオブジェクトサイズが減少します。やや物騒な名前の関数を使います。こちらは{parsnip}
が対応するエンジンについて対応しており、すでにCRANに登録されています。
今回のテーマはtidymodelsでしたが、今Rで機械学習モデルを実行するには他の選択肢がいくつかあります。この比較についても発表時は行えませんでした。以前tweetで発信した情報がありますのでこちらをご覧ください。
tidymodels… 🏰絶対王政RStuidio, caretパッケージ開発者Max Kuhn率いる連合軍。パイプフレンドリーで馴染みやすい(がパッケージ、関数が多め)https://t.co/RuBetlP7iJ
— Uryu Shinya (@u_ribo) June 11, 2019
mlr… 🇩🇪ドイツのnext generation勢力。モデル定義から精度検証、パラメータ探索まで、多くのパッケージをサポートし拡張性に優れる(R6実装)。パフォーマンス重視か? https://t.co/2gOm8TxPqf
— Uryu Shinya (@u_ribo) June 11, 2019
MI2DataLab… 🇵🇱ポーランド ワルシャワ大学のMLチーム。モデル適用後の解釈や変数重要度の可視化・選択をサポートする各種パッケージ(DALEX, live, iBreakDownなど)を提供。おしゃれ。 https://t.co/XTm6M11SEj
— Uryu Shinya (@u_ribo) June 11, 2019
また会いましょう!
Fukuoka.Rお疲れ様でした!
— Uryu Shinya (@u_ribo) August 31, 2019
運営、参加者、会場提供のLINE福岡さん、本当にありがとうございます。楽しい会でした。服部さんに認知してもらったり、数年前にFOSS4Gで出会った @sugi2000 さんに再会できたり、嬉しいことも沢山でした😝 #fukuokaR