R
RStudio

Rのデータサイエンス書籍相関図(R初学者用)をつくってみた。

はじめに

Rのデータサイエンス書籍相関図の超個人的版を作りました。R言語のおかげで、今はお仕事ができているようなものなので、1人でも多くのRユーザーが増えてRコミュニティがもっと活発になればと思い、作成しました。

私の技術や知識はこの著者の方々のおかげで成り立っているので、良書を作るために、自分の時間を削って執筆活動をされている方には頭があがりません。感謝しかありません。

そして、Rを使い始める方のお助けになればと思います。
書籍相関図-01.png
【注意事項】

  • 自分が読んだ書籍の中から「R」が中心の書籍を選びました。
  • 無論、良書は他にも多数あると思われます。
  • 理論系、ベイズ統計、Python系は除いています。
  • 言語処理、時系列、異常値検知はあまり知らないので除いています。
  • 私はどれかの書籍の著者でもないので、販促活動ではありません。

相関図の出発地点

ここからは個人的に、Rを使い始める方のお助けになれるように、書籍の良かった点をまとめていきます。

全ての書籍の良かった点は書けていません。ご了承ください。また、Rを使い始める方向けの話なので、知ってる方からすれば、面白みもない投稿かもしれません。

そもそも、この相関図はRユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界−から始まっている相関図となっています。

その理由は簡単で、この書籍の目次に載っている技術こそがデータサイエンスの仕事で、最低限求められる基本的な技術だと個人的に思っているからです…

Python派の人からしても、書籍タイトルのRの部分を「Python」に直せば、それなりに納得できるかと思います。もっとも、機械学習、エンジニア的な素養が求められるとは思いますが。

さておき、この本では、RStudioの使い方に始まり、データの収集、加工、可視化、レポート作成の一連の技術や知識を、一冊を通してモダンなRを網羅的に学べます。これは、他の書籍にはない独自性だと思います。

手を動かしながら読み進めば、データサイエンスの仕事を体感できるかと思います。そして、ここからさらに技術や知識を学ぶ必要が出てくると思いますので、そこからは分野を限定した書籍の出番かと思われます。

無論、実際の実務で体験する神エクセルや規則もへったくれもない謎のデータベースからのデータ取得や加工、上司やお客様からの理解不能な謎の分析に関する注文。そして、世界を支配しているパワーポイントやエクセルへの分析結果の転記作業は学ぶことはできません。しかし、このようなことが起こったとしても、この本の各章の技術を磨いておけば、最小限の労力で済ませるに違いありません。

R Studioの基礎

まずRStudioのブロックですね。Rユーザーであれば、おそらく1度は必ず使ったことがあると言っていいほど、有名なツールかと思います。このツールが無料で使えるなんて、すごくありがたい時代です。

RStudioではじめるRプログラミング入門は、サイコロ、トランプゲーム、スロットマシンをRで作っていきながら、その過程でRStudioを使い、楽しみながらRでのプログラミングを学べます。また、最後の方には、R言語仕様の解説も少しあるので、Rのプログラミングスキルが身につきます。

その中で、パッケージについて気になる点があれば、Rパッケージ開発入門 ―テスト、文書化、コード共有の手法を学ぶRのパッケージおよびツールの作成と応用 (シリーズ Useful R 10) などを読むことになるかと思います。

これらパッケージ関連の書籍は、エンジニア的な素養がない私には、すごく難しく感じました。なので、買って読んだものの、それ以降は開いてません…久々に読んでみようか…。私のような凡人でも理解できるGithubを使ったRパッケージの開発などの書籍があればすぐ買います。誰か書いてください…笑

Rの挙動については、相関図右上のブロックの書籍がお勧めです!!と、言いながら、私は半分くらいしか理解できてません。通称パンダ本ことRプログラミング本格入門: 達人データサイエンティストへの道は、タイトル通り本格入門です。Rの言語仕様を学びたい人には、非常にありがたい一冊ではないでしょうか。熟練者でもエンジニアでもない人間が、この本からデータサイエンスを学び始めるのはおすすめできないくらい「本格的」です。また、中級から上級に上がるためには、必要な知識かと思われます。私も初級よりの中級から、はやく上級になりたいです…勉強するしかいないですが…(泣)

なので、この本を読み進めがら、R言語徹底解説Rの基礎とプログラミング技法Rプログラミングマニュアル―Rバージョン3対応 をアンサンブル学習すればRの言語仕様については、怖いものなしになれるかもしれません。

スクレイピングによるデータ収集

スクレイピング関係の書籍紹介が少ないのは私の知識が少ないことに由来します。ごめんなさい。データは基本的にはデータベースやログ、アンケートなどから取ってくるのが一般的かと思います。一方で、ウェブページから取ることもできて、その技術がスクレイピングですね。Rによるスクレイピング入門を読むことで、スクレイピングに必要な技術や知識を学ぶことができるかと思います。例えば、HTMLやXMLの解析、APIからのデータ取得などです。

Rによる自動データ収集: Webスクレイピングとテキストマイニングの実践ガイドは、スクレイピングだけではなく、レポート作成の効率化、自動化する技術を学ぶことができます。また、複雑なWebサイトからでもデータを取れるような専門的なスキルも解説されています。ネットワーク分析、ツイートマイニング、地理データの分析などなど最後の最後まで面白い本でした。

データの前処理

データの前処理は、データ分析の仕事の80%をしめる作業です。hogehoge分析でこんな結果が出ました!!というためには、インプットするためのデータが必要で、そして、データの加工が必要です。

データの前処理は、単純にselectfilterなどでは、簡単に済まないことのほうが多いです。データを分割する、データを集計する、この計算をさせるためには、この前に加工しておかないといけない、データの持ち方をどうするかなどなど、いろいろと頭を悩ませることは多くあります。

加えて、加工ができても、データの入れ替え時の手間や効率の問題などなども考慮しなくてはいけません。場当たり的に処理をしていると、ビジネスではよくある謎の追加注文などには対応できず、1からやり直すハメになりかねません…。

このような問題に対処するためにも、Rではじめるデータサイエンスが役に立ちます。この書籍紹介にもあるように、データサイエンスに必要な読み込み、整理、変換、可視化、モデル、コミュニケーション、プログラミングが学べます。

具体的には、ggplot2dplyrtibblereadrtidyrstringrforcatslubridatemagrittrpurrrmodelrbroomなどの関数の使い方を学ぶことができます。Hadley WickhamとGarrett Grolemundのタッグを組んだ一冊なので、必読をお勧めします。

前処理大全では、ただ前処理ができるようになるのではなく、「最適解」なAwesomeな前処理ができるように書かれています。コードをもとに、この部分はこうするべき、こう考えるべきなど、実務で即役立つノウハウが詰まっています。また、データサイエンスで求められるR、Python、SQLの全ての言語で解説がされており、同時にその他の言語のコードも学ぶことができます。

ビッグデータ分析・活用のためのSQLレシピSQL逆引きレシピ (PROGRAMMER’S RECiPE)は、Rの本ではありませんが、どんな言語を使うにしろ、前処理や加工方法は頭で考えないといけません。前者の方は、「そんな集計までSQLでやってしまうのか…」というほど、SQLで基礎から応用までがまとめられています。後者は、ちょっと頭を使わないといけないようなデータ加工の方法について、まとめられています。SQLの本ではありますが、「考え方」さえ理解してしまえば、あとはRで実行するだけなので、相関図に含めました。

Rによるハイパフォーマンスコンピューティングは、ビックデータをRで扱うための大規模データ処理方法、パフォーマンス改善、並列計算、Hadoop連携などなど、ビックデータをRで扱うための方法がふんだんに盛り込まれています。最近は扱うデータ量が多くなりがちなので、いつもどおり前処理やモデリングをしようとすると、お昼ご飯を食べて帰ってきても、計算処理が終わってない…みたいなこともありますが、そんなときこそ、この本は役に立つはずです。

ggplot2を用いたデータの可視化

数字を並べた行列を眺めて傾向が把握できるならいいのですが、私のような凡人は、そんな能力は持ち合わせていません。そんなときこそ、データの可視化ですね。可視化することで、傾向はぐっと把握しやすくなりますし、データ分析を仕事にしていない方々に説明する際には必須です。論文のように、モデリング結果の数値をみせても、通常であれば理解できません。もし話が通じれば、奇跡が起こったと思っても問題ないです。

Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集グラフィックスのためのRプログラミングはどちらもggplotの使い方を紹介しています。豊富な事例をもとに丁寧にggplotの使い方が学べます。関数や引数を覚えれない私にとっては、もはや辞書的な立ち位置の本です。まえがきには、「逆引きしてグラフを描く方法を学ぶことのできるこの本のスタイルはggplot2の習得にかなり適しているのではないかと思います。」と書かれています。

RとShinyで作るWebアプリケーションは、日本では非常に貴重な書籍ではないでしょうか。Shinyのことが知りたければ、これまでは英語を読むほかありませんでした。しかし、この書籍の登場によって、基礎から応用まで日本語で学ぶことができます。実際に、回帰・分類などを行うShinyアプリケーションを作ることもできますし、公開の方法まで書かれており、Shinyを始めるならまずこの書籍ではないかと思います。

Rmarkdownによるレポート生成

再現可能性のすゝめは、Rmarkdownの使い方および「再現可能性」に焦点を当てた本ですね。Rmarkdownの本を網羅的に学ぶことができる貴重な本です。「再現可能性」は、科学でもビジネスでも重要なので、これを期に、基本的には分析レポートはRmarkdownで作成できるようになりたいところですね。

自然科学研究のためのR入門―再現可能なレポート執筆実践―は、さきほどの「再現可能性のすゝめ」で学んだことを実務の分析レポートの作成ですぐに役立てれます。嬉しいことに、いろんなパターンのデータ分析からレポート作成の事例も学ぶことができます。

統計・機械学習モデリング

「仕事」の分析作業時間は、前処理や視覚化に80%くらいは取られ…20%はモデリングの時間です。しかし、「仕事」とは反対に、「学習」の時間があるとすれば、ぶっちゃけ80%はモデリングや理論、特徴量エンジニアリングの学習で、データ加工自体の勉強は20%ほどではないでしょうか…悲しいですが…。

統計モデリングといえば、「緑本」ことデータ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)ではないでしょうか。この本では、一般化線形モデルから階層ベイズまでがわかりやすく学ぶことができる良書です。一般化線形モデルの学習を始めるなら、一般化線形モデルのイメージを持ちやすい、まずこの本から始めるべきだと思います。

また、「統計モデリングとは」なんなのか、再度考えさせられる本でした。なんでもかんでも、とりあえず検定、これまでも直線で回帰していたから、という思考の停止状態から、モデリング前にどうするべきか、「頭を動かすこと」ができるようになる本です。より詳しく理解を深めるために、他の一般化線形モデルの書籍にあたればよいかと思います。

まとめ

以上、データサイエンス書籍相関図の説明でした。初学者の方が始めようと思ったときに、ざっくり全体像と各分野に対応する書籍、その内容がわかるように、ざっくりと記載しました。

まだまだ、Rの良書はあるはずですが、これから学習を始める方のお役に立てればと思います。