『Rユーザのためのtidymodels[実践]入門』という本が出ます。
この記事はR Advent Calendar 2022 9日目の記事です。
そしてこのブログも1年ぶりの更新となります。ごめんなさい。
さて、タイトルの通り書籍が出ます。正式タイトルは
『Rユーザのためのtidymodels[実践]入門〜モダンな統計・機械学習モデリングの世界』
です。
本記事執筆段階では書影がまだ出ていませんが、近日中に出ると思われます。かっこいい表紙なのでお楽しみに!
20221213 出版社のページが出ました!かっこいい表紙ですね!
どんな本なの
この本は以下のような構成になっています。
- データの準備(@u_ribo)
- 回帰モデルの作成(@Ringa_hyj)
- 分類モデルの作成(@Ringa_hyj)
- モデルの運用(@u_ribo)
- ハイパーパラメータチューニング(@y__mattu)
- 自然言語処理におけるtidymodels実践(@y__mattu)
典型的な機械学習モデルのプロセスに沿って、tidymodelsで該当するパッケージの使い方を説明しており、最後に自然言語処理を例に全体の流れをおさらいする、という形式になっています。
書籍の特徴
この書籍にはいくつかの特徴があると思っています。
- 日本初のtidymodels本
- 実践を意識した丁寧な解説
- (私以外の)豪華な執筆陣
日本初のtidymodels本
そもそもtidymodelsとは何かというと、一言でいえば「(主に)機械学習のモデリング*1をtidyにやる」パッケージ群です。tidyverseが登場して以降、「整然とした」という意味をもつ「tidy」の言葉がR言語界隈で普通に使われるようになりました。その流れを受けてモデリングをtidyにできないかということで開発されたのがtidymodelsです(もう少し詳しいtidymodelsの説明は書籍中で触れているのでぜひご覧ください)。
その上で、なにか一つ書籍の特徴を挙げるとすれば、やはり「日本初のtidymodels本」ということに尽きるでしょう。tidymodelsはここ数年で登場し今年2022年にver1.0.0が出たパッケージで、30年近いRの歴史の中ではかなりの新参者です。ゆえに体系的にまとまった物が少なく、Web上では公式のドキュメント、英語の書籍としては『Tidy Modeling with R』やいくつかの関連書籍がある程度です。日本語では単体のパッケージの使い方やスライドなどの資料はWeb上で公開されていますが、書籍としてはこれが初となります。
英語だと書籍自体が無料で公開されていたり、様々な資料をWebで閲覧できるこの時代ですが、やはり体系的に整理された書籍を日本語で読めるというのは重要であり、この書籍は多くの方にとって役立つものだと考えています。
実践を意識した丁寧な解説
いくらtidymodelsを日本語で解説したからと言って、読んで「ふーん」となるだけでは意味がありません。この書籍ではタイトルにもある通り「実践」を意識した作りになっています。1-5章ではパッケージの使い方の説明がメインのため、主にパッケージに含まれ簡単に呼び出せるサンプルデータを使用していますが、6章では(Web上に公開されているものではありますが)実データを取得しモデリングを始められるように加工する、いわゆる「前処理」の部分から解説しています。これにより、「ツールの使い方を学び、応用例を学ぶ」という文字通り実践を意識した作りになっています。もちろん、各パッケージの使い方も実際に使う場面を想定し、様々な観点から解説されています。
(私以外の豪華な執筆陣)
自分以外の著者を紹介します。
@u_ribo
日本でRとtidymodelsの書籍を書くとなれば、この方を外すわけにはいきません。Tokyo.Rやfukuoka.Rでtidymodelsに関する発表も多くこなしており、1章データの準備と4章モデルの運用では丁寧かつ分かりやすい、さすがの解説を読むことができます。
@Ringa_hyj
2, 3章を担当したのは、知る人ぞ知るtidymodelsマニアのRingaさんです。Qiita上でもtidymodelsに関する記事を多く投稿しており、そのマニアックさとAIエンジニアとしても活躍されているがゆえの詳しい解説をぜひご覧ください。
自分の担当した章の紹介
5章ハイパーパラメータチューニング
実は分量的にはこの章が一番あっさりしているのですが、それでも書くべきことはしっかり書きました。一度モデルを作成したあと、アルゴリズムのハイパーパラメータを調整することでより予測精度を上げ、汎化性能を担保する方法について解説をしています。定番のグリッドサーチ、ランダムサーチからベイズ最適化までを網羅しています。
実は、機械学習モデルのハイパーパラメータをチューニングをベイズ最適化でやる方法については昔、tidymodelsでベイズ最適化ができない時代に、CRANにMlBayesOptというパッケージを作成して公開していたのですが、今はtidymodelsがベイズ最適化に対応してるのでこっちを使ってね、という隠れたメッセージもあります。そんなわけでこの章に関しては分量は少ないものの並々ならぬ思い入れがあります。
6章自然言語処理におけるtidymodels実践
1-5章は主にパッケージの使い方の説明だったので、最後に応用例として一連の流れを振り返りましょう、というのがこの章です。なぜ自然言語処理なのかというと、これは完全に自分の好みです*2笑
データとしては定番ではありますが自然言語処理の説明でよく使われるとあるデータを用いています。テキストファイルが公開されているだけですので、Rにデータを読み込むところ、tidymodelsに入力できるように整形するところから解説をしており、実際のデータ解析の場面を想定した構成になっています。また、自然言語処理ということで、それに特化したtidymodelsの拡張パッケージにも一部触れています。
この書籍で触れていないこと
この書籍はtidymodelsの使い方にフォーカスしているので、以下のようなことは触れていません。
機械学習アルゴリズムの詳細な説明
そもそも機械学習って何?やアルゴリズムの数理的な詳細については、基本的に解説をしていません。完全に他の専門書籍に譲る、というスタンスをとっています。
tidyverseやパイプ演算子の使い方
書籍中でデータの操作でtidyverseの基本的な関数(select()
やmutate()
)、パイプ演算子(本書では普及率の観点から %>%
)を使用していますが、これも特に断りなく使っています。このあたりは拙著『RユーザのためのRStudioj[実践]入門』をご覧ください。
tidymodelsを拡張するためのパッケージやその使い方
tidymodelsは外部パッケージによって、扱える前処理やアルゴリズムに関して拡張ができます。6章で一つだけテキストの前処理に関するパッケージを紹介している以外は、発展的すぎるという理由でこういった類のものは紹介していません。
故に、この書籍は全くの初学者向けではなく、ある程度Rによるデータ分析をやったことがある方に向けたものとなっています。
最後に
実は、この書籍は私の持ち込み企画です。全てはこのツイートから始まりました。
3年前に宇宙本から始まるtidy3部作的に
— Yuya Matsumura (@y__mattu) June 7, 2021
- 中上級者向けのtidyverse Cookbook的な立ち位置のもの
- tidymodelsの解説
を書くという構想が自分の中ではあったのだけど、宇宙本も改訂して宇宙本になったし、tidymodelsも核の部分は枯れてきた感あるので、gitbookの形で少しずつ書いていこうと思ってる
これは昨年、『RユーザのためのRStudioj[実践]入門』(通称:宇宙船本)の改定2版が出たあとに呟いたものです。これは編集を担当したT氏に初版の宇宙本のときにお声がけいただき、執筆に参加したものでしたが、当時の自分としては(著者陣同じ思いだったと思いますが)まさに「こういう書籍が出したい!」というものを出せたという実感がありました。そのあとtidymodelsが少しずつ有名になっていくに連れ、上のようなツイートの思いが大きくなっていました。
このツイートをした当初はtidymodelsはまだ1.0.0にもなっておらず、変更も色々入るだろうと思ってましたし、tidyverseの発展的な使い方もいろいろ変わるだろうと思っていたので、これらはGitBookの形で出せればと思っていました。しかし、このツイートを見た編集のT氏がDMで「紙の書籍で書きませんか?」とお声がきくださり、よしやろうとなりました。
そんな感じでやることなり、企画書を出版社に出したのが昨年の7月頃だったと思います。そこから共著者の方々にお声が騎士、執筆し、外部の方も含めて複数の方にレビューをいただき、この度発売となりました(発売日は2023年1月4日)。
実は、途中で共著者の方が1名交代する、というアクシデントもあったのですが、企画から1年半でなんとか発売までこぎつけられたのは、共著はの皆様、編集のT氏、外部レビューで入ってくださった皆様(途中交代で著者を抜けた方ももレビューには入っていただきました。ありがとうございます)、急な依頼にも関わらず迅速にご対応いただいた誤植チェックレビューの皆様のご協力があってこそです。
書籍中でも御礼をしていますが、この場でも改めて御礼申し上げます。