データ処理と可視化をPythonで行いたい場合に、どんな入門書があるのでしょうか?また、ディープラーニングに興味がある場合に、どんな本から入ればよいのでしょうか?良さげに思える本を主観で選んで紹介します。洋書はPDFがネット上にあるので、中身を確認できます。
Pythonデータサイエンスハンドブック
著者は、Jake VanderPlas氏で、原書のタイトルは、Python Data Science Handbookで副題が、Essential Tools for Working with Dataです。邦訳タイトル『Pythonデータサイエンスハンドブック』。副題として、「Jupyter, NumPy,pandas, Matplotlib, scikit-learnを使ったデータ分析、機械学習」とあります。VanderPlasさんは、ワシントン大学で博士号取得を取得し、ワシントン大学にて天文学の研究および研究者に対するコンサルティングを行っているそうです(参考:本書の著者紹介欄)。目次は、第一章がIPython, 第二章NumPy、第3章pandas、第4章Matplotlib、第5章機械学習というトピックで構成されています。本書は「Python3対応」として書かれていますが、Python2への配慮もなされています。本書は、Pythonの入門書でもなく、プログラミングの入門書でもなく、データサイエンスの入門書でもないようです。前書きによれば、Pythonに入門したい人は、A Whirlwind Tour of the Python Languageを読んでくださいと言っています。Pythonで用意されているさまざまなライブラリ(NumPy, pandas, Matplotlib, scikit-learn)をどのように使って機械学習を実現させるかの解説書です。しかし、Pythonや機械学習に関してそれほど詳しくない段階であっても、行う習うより慣れよでPythonで機械学習を行えるようになるのには、良い本かと思います。執筆の動機がそもそも、ネット上に散在するさまざまなチュートリアルをかき集めて勉強しなくても、これ一冊で全部網羅してますというものを作りたかったそうなので、実際、機械学習のトピックを見ても典型的な手法が一通りカバーされています。第五章の章立てを紹介すると、ハイパーパラメータとモデルの検証、特徴量エンジニアリング、ナイーブベイズ分類、線形回帰、サポートベクターマシン、決定木とランダムフォレスト、主成分分析、多様体学習、k平均法クラスタリング、ガウス混合モデル、カーネル密度推定、HOG特徴量と顔検出などの解説が並んでいます。
紙質が良く、印刷はカラーなので、可視化された結果が興味深いグラフとして表示されているのを眺めているだけでも楽しくて、勉強意欲が掻き立てられます。
- https://github.com/jakevdp/WhirlwindTourOfPython
- a-whirlwind-tour-of-python-2.pdf (s3-us-wet-2.amazonaws.com)
- Python Data Science Handbook.pdf (allitebooks.com)
Pythonによるデータ分析入門 第2版
Wes McKinney著『Pythonによるデータ分析入門 第2版―NumPy、pandasを使ったデータ処理』。原書タイトルは、Python for Data Analysis, 2nd Edition。初版がPython2.7対応で書かれていたのに対し、この第2版はPython3.6対応で書かれています。原書のPDF版がインターネット上で入手できるようなので、紙の本を買うか決めるために、内容の確認ができます。
- https://github.com/wesm/pydata-book
- Python for Data Analysis 2nd Edition.pdf (allitebooks.com)
ゼロから作るDeep Learning
斎藤康毅(さいとうこうき)著『ゼロから作るDeep Learning』。副題が、「Pythonで学ぶディープラーニングの理論と実装」。この本は今更紹介する必要がないのではないかと思えるくらいに、書店でも山積みされておりベストセラーになっていると思います。ディープラーニングのフレームワーク(Caffe, TensorFlow, Chainerなど)は使わず、GPUも使わず、画像認識を題材にしてディープラーニング(深層学習)をゼロから学ぼうというコンセプトです。ディープラーニングの理論と、Pythonによる実装を同時に学びたいという人のための本。深層学習というブラックボックスの中身を理解したい人向けです。Pythonが初めてで、ニューラルネットワークも初めてという人であってもついてこれるように非常に親切に書かれた、稀有な本ではないかと思います。
scikit-learnとTensorFlowによる実践機械学習
Aurélien Géron著『scikit-learnとTensorFlowによる実践機械学習』。原書は、Hands-On Machine Learning with Scikit-Learn & TensorFlow —- CONCEPTS, TOOLS, AND TECHNIQUES TO BUILD INTELLIGENT SYSTEMS by Aurélien Géron。パートIが機械学習の話題で、パートIIがニューラルネットワークと深層学習に当てられています。
- Hands-On Machine Learning with Scikit-Learn & TensorFlow (PDF available at github.com)
参考(データサイエンス、Pythonの本)
勉強の便宜を計るためには紙の本を手元に置いておきたいものですが、内容がわからないと買うべきかどうかが決められません。原書でよければPDFがネット上にありますので内容を確認する上で参考になります。
- Python Data Science Handbook by Jake VanderPlas (PDF at allitebooks.com)
- Python for Data Analysis, 2nd Edition by Wes McKinney (PDF at allitebooks.com)
- Introduction to Machine Learning with Python by Andreas C. Mueller and Sarah Guido (PDF at allitebooks.com)
- Think Python — HOW TO THINK LIKE A COMPUTER SCIENTIST by Allen B. Downey (PDF at allitebooks.com)
- Fluent Python by Luciano Ramalho (PDF at allitebooks.com)
- Learn Python 3 the Hard Way by Zed A. Shaw (allitebooks.com)
参考(データサイエンス、データサイエンティスト)
- データサイエンティストが生き残るために必要なのは「本質を見抜く力」|小川卓氏x尾崎隆氏対談 レバテックキャリアスペシャルインタビュー levtech.jp