読者です 読者をやめる 読者になる 読者になる

六本木で働くデータサイエンティストのブログ

元祖「銀座で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木

2014年春版:ビジネスにおけるデータ分析のプロを目指すなら揃えておくべき12冊

データ分析 統計学 機械学習 R Python 書評 書籍

さて、前回リストの記事から半年ぐらい経ちましたよーということで、それ以降に発刊された書籍などを吟味した上で更新したリストをお届けしたいと思います。といっても引き続き今回のリストにも入っているものが多いので変わり映えしないかもですが。。。


前回同様、統計学機械学習にまつわる学術的な知識を得るだけにとどまらず、ビジネスにおけるデータ分析のプロとして知っておきたい知識を得るために必要な書籍もリストに入れてあります。


確率論まわりの基礎理論についての書籍は僕自身が勉強途中なので割愛しました*1。またコーディングまわりの本は一旦割愛してあります。というか僕はエンジニアとは言い難い身なので(泣)、コーディングまわりや詳細な実装プロセスなどは適宜必要な本を読んで下さいということで。。。


そして改めての断り書きですが、これは「ある程度既に統計学機械学習などに馴染みがあってそれなりにPythonでコードを書いたりRで実装されたアルゴリズムを利用できるくらいのスキルがある人」を対象としたお薦め書籍リストです。そのレベルにまだ達していない人にはこの後の記事で初心者向け書籍リストを用意しておりますので、そちらをどうぞー。


統計学


普通の統計学*2ベイジアンとで分けて書いておきます。理由は簡単で、普通の統計学について学ぶのは当然として、最近はBUGS / JAGS / Stanによってベイジアンモデリングの計算が比較的容易になり、データ分析業界にベイジアンが広まりつつある流れが感じられるからです。


普通の統計学


統計学入門 (基礎統計学)

統計学入門 (基礎統計学)

自然科学の統計学 (基礎統計学)

自然科学の統計学 (基礎統計学)

人文・社会科学の統計学 (基礎統計学)

人文・社会科学の統計学 (基礎統計学)

まず、言わずと知れた東大出版会の三部作を。こちらは日本で手に入る統計学の教科書としては定番中の定番で、かつ必要な知識の大半がほぼ網羅的に手に入ります。ちなみに全て学部の1~2年で習う内容ですので、一応「平易」*3ということになってます。


1冊目の赤本で大まかな統計学全体の基礎をつかみ、2冊目の青本で分散分析や適合度検定はたまた最尤法や一般化線形モデル・確率過程・乱数といった発展的な話題を学び、3冊目の緑本では実際にビジネスの現場で出くわしやすい社会・市場調査系データや金融系データの扱い方やそれらのデータが持つ様々な性質について概観する、というのが良いかなと思います。


ベイジアン


ベイジアン統計解析の実際 (医学統計学シリーズ)

ベイジアン統計解析の実際 (医学統計学シリーズ)

ベイジアンには、ガチガチの理論的な本を持ってくると辛い人が多そうなので*4、代わりにBUGSベースのベイジアン本を2冊。久保先生の「緑本」は言わずもがな、これまた勉強会が新しく立ち上がるほどの大人気テキストです。R + WinBUGS + {R2WinBUGS}で分かりやすく一般化線形モデルから階層ベイズ、空間統計学までを概観する素晴らしい一冊。


一方『ベイジアン統計解析の実際』は最低限のMCMCまわりに関する理論的基礎の説明が載っていて、さらに緑本よりも豊富なBUGSによるベイジアンモデリングの実装例がサンプルデータとともに示されており、ベイジアン初心者にも分かりやすい内容です*5


機械学習


機械学習は最近になって色々良書が増えてきていますので、難解なことで有名なド定番「黄色い本」PRMLは一旦ラインナップから完全に下げて*6、日本の著者が書き下ろした良書を3冊選んでおきました。


理論的な基礎について


はじめてのパターン認識

はじめてのパターン認識

通称「はじパタ」「ピンクの薄い本」。機械学習に必要な知識の多くがコンパクトかつシンプルに収められた一冊です。勉強会が開催されるほどの人気だったのもうなずける内容です。実装コードは明記されていませんが、Rによる計算結果の例が出ているので、Rで試しながら勉強するというのが良いと思います。


お薦めの読み方は、普通に読み進めながら個々の項目の単語(英語)をググってRにおいて対応しているパッケージを調べてきて、それをインストールして同梱サンプルデータで試していくというもの。これだと結構分かりやすくて良いですよー。


実装面でのポイントについて


言語処理のための機械学習入門 (自然言語処理シリーズ)

言語処理のための機械学習入門 (自然言語処理シリーズ)

フリーソフトではじめる機械学習入門

フリーソフトではじめる機械学習入門

以前から良書として知られていた『言語処理のための機械学習入門』、ずっと未見だったんですがこの度ようやく読むことができてその内容に感動したので、今回新たにラインナップに加えました。何と言っても、個々の機械学習手法について実装を念頭に置いた擬似コードによるアルゴリズム説明が逐一付いていて非常に分かりやすく、おまけに冒頭では基礎知識の一環として最適化問題についても触れられているのが素晴らしいです*7


そして最近出たのが『フリーソフトではじめる機械学習入門』。これは分かりやすいようでいて、お世辞にも多数派ユーザーが使っているとは言い難いWekaベース実装だったり、意外と説明がゴツかったりなので初心者にはお薦めできないです*8。とは言え、前者同様擬似コードを用いたアルゴリズムの説明が多いのとDeep Learningなど最新トピックスについての記述もあり*9参考になる内容が多かったので、今回のリストに入れました。


ということで、どちらも特にPythonなどでフルスクラッチで実装しながら勉強するのには最適な本だと思います。ただし、2冊とも理論的基礎の説明がおろそかということは決してなくて、むしろものすごーーーく理論の説明がしっかりしているので、実装のところばかり読まずに理論的基礎のところもちゃんと読むと勉強になると思います。


個別テーマ


経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)

経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)

計量時系列分析はぶっちゃけかなりマニアックな分野だと思うんですが*10、各種BIツールなどで「KPI / KGIの時系列だけが手に入る」みたいなケースでは非常に役に立つことが多いので、知っていて損はないと思います。


手前味噌ですが、この沖本本についてはこのブログの「計量時系列分析」カテゴリの記事群で2ヶ月に渡って各章のテーマに沿ったRによる実践例を紹介してますので、よろしければどうぞ(笑)。


データマイニング総論


Rによるデータサイエンス - データ解析の基礎から最新手法まで

Rによるデータサイエンス - データ解析の基礎から最新手法まで

僕が必ず脇に置いているバイブルです。極めて簡潔な理論的基礎の説明と、豊富なRコード例から成るシンプルな1冊です。ぶっちゃけ、Rをメインで使うつもりの人はこの1冊だけ読み通して写経*11すれば事足ります。


集合知プログラミング

集合知プログラミング

陳腐化が著しい上に文中に登場するAPIが既に使えなくなっていたりと問題が多いんですが、大抵の機械学習関係のアルゴリズムが載っている上に、Pythonで実装する際のポイントがこれでもかと揃っているので、Python使いでアルゴリズム実装をやりたい人はこれを読みながら写経して損はないと思います。


データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)

データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)

そして、言わずと知れた養成読本。既に基礎のできているエンジニアが読めば、文字通り痒いところに全て手が届くかのような完璧なムック本と言って良いと思います。データ分析体制の全体像から、RやPythonを用いたビジネスデータ分析の実践例、さらにはグラフ理論+ネットワーク分析の初歩やSQLの使い方、果てはFluentdの解説に至るまで、まさに至れり尽くせりの内容。詳しくは以前の書評などをご覧下さい。


最後に


多分また秋にでもアップデートしたリストを書きますのでお楽しみに(笑)。初心者向けリストはこの次回の記事か、次々回の記事ですかねー。

*1:うちの教授氏から「やれ」と言われてますが泣

*2:「頻度論」とざっくり切ろうと思ったけど、間違ってると嫌なので本文では断定的に書かなかったという弱気

*3:白目

*4:@ibaibabaibai先生の名著とか(職場の本棚に置いてありますがまだ全部読んでません汗)

*5:@ibaibabaibai先生のゼミでも輪読していた由Twitterで拝読しました笑

*6:でもうちの教授氏からは「うん、あんな分かりやすい読み物ないよね」と言われましてですね(白目

*7:ラグランジュ未定乗数法の説明がされているのが実に良い

*8:何だかんだで数式の羅列がずらーーーっと続くので

*9:ただしautoencoderの実装コード例しか載ってないので要注意

*10:そもそも計量経済学の一分野であって、統計学の花形というわけでもないし

*11:コード例を写しながらひたすら実行すること