私は独学でPythonを学習し、今ではデータサイエンスのサイト、Kaggleに挑戦できるまでに成長することができました。
今回は私がPythonとPythonを使った機械学習の学習に利用し役に立った入門書をご紹介したいと思います。また、本以外で利用したWebサービスについては別の記事もありますので是非ご覧ください。
Python入門書
まずは、Pythonそのものの入門書です。
Pythonスタートブック[増補改訂版]


おすすめ度:☆☆☆☆
Pythonスタートブック[増補改訂版]は、下記初版をアップデートし、Python3.Xへの対応を施したものです。Pythonには現在ver2系とver3系が存在しますが、後方互換性のない箇所も多いため、これから学ぶ人は3系対応のものを強くおすすめします。
内容的には全11章からなり、うち9章を使ってプログラミングの概念からPythonの基本文法、リスト、タプル、辞書、Datetime、オブジェクト指向までを学びます。10章と11章でWebアプリケーションとデータ分析をそれぞれ少しずつ扱いますが、難易度は高くありません。
技術書は得てしてわかってる人がわかってない人を想定して書かれてあるため言い回しや専門用語が思わず出てきてしまってハマるものですが、本書は最後まで平易に目線を合わせて書かれています。完全な初学者にはおすすめです。


(こちらは増補以前の初版)
独学プログラマー Python言語の基本から仕事のやり方まで


おすすめ度:☆☆☆☆
これは中々珍しいコンセプトの本で、「独学でPythonを学んでプロのエンジニアになるまで」の方法が紹介されています。前半は(やや駆け足気味ですが)Pythonの基本的なことが書かれています。
特徴的なのが第5部からで、23章ではプログラミングを仕事にする上での泥臭いトラブルシューティングについて解説されています。曰く、コーディングに着手するのは最後の手段など面白い着眼点かと思います。
その後にはエンジニアとして面接をパスする方法、企業に入ってチームで働く方法など、ビジネス書のような仕立てになっていくあたりがかなりユニークです。ちなみにページ数的には第5部以降が約3割といったところでしょうか。読み物としても面白いのでおすすめです。
入門 Python 3

おすすめ度:☆☆☆
入門書と聞いてO’Reillyの本書を手に取る方も多いと思いますが、これは分かってる人がそのまま書いたような本で、プログラミングの基礎用語がわからないと辛いところもあるかと思います。また、量が多いので途中でつまづきかねません。
他の本でやさしく全体像を知ってから参考書として本書を利用されるといいと思います。内容的には非常に充実しています。
Pythonによる機械学習の入門書
次に、Pythonを前提とした機械学習入門の本です。
増補改訂Pythonによるスクレイピング&機械学習 開発テクニック

おすすめ度:☆☆☆☆☆
個人的にPythonを使って機械学習を学ぶのであれば一番オススメの本です。前半部分でBeautiful Soupというライブラリを使ったWebのクローリングとスクレイピングについて、後半で機械学習について学ぶことができます。
機械学習の手法についても、有名なアヤメの品種分類(クラス分類)、画像認識、自然言語処理にサポートベクターマシン、ランダムフォレストなど基本的な手法を網羅しています。
その他に日本語の解析、Word2vec、ベイズ推定など、Pythonで日本語を分析するための知識が特に豊富です。Twitterや食べログやその他SNSなど、大量の日本語を分析してみたい人には特におすすめです。
また、後半ではTensorflowを使った深層学習も学べます。それなりに難しいですが、何冊も買うのであれば本書を買っておくことをおすすめします。
Pythonクローリング&スクレイピング[増補改訂版] -データ収集・解析のための実践開発ガイド

おすすめ度:☆☆☆
ひとつ上で紹介している書籍と同じく、Webスクレイピングを扱った本ですが、Pythonについての基礎知識はこちらのほうが手厚いです。また、機械学習についてはほとんど出てきません。本題のスクレイピングについては流石に詳細ですが、おそらく著者がLinuxベースの方っぽく、最後の方はLinuxの知識がないと中々読み下せない気がしました。
私はおそらく半分くらいしか本書を活用できなかったと思います。ただ、スクレイピングを中心に学びたい方には向くのでは無いでしょうか。
[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

おすすめ度:☆☆☆☆
本書は達人データサイエンティストによる理論と実践とあるように、実際に著名なデータサイエンティストが各章を執筆しています。とても参考になるのですが、それだけに統計的な考証などが深く入り込んでいます。また、特徴量エンジニアリングやモデルの最適化など、機械学習の精度を高める上で欠かせない手法が実際の手順に則って書かれています。
けっこう難解なため、これを機械学習入門の1冊目として選ぶことは推薦しません。上記「Pythonによるスクレイピング&機械学習 開発テクニック」のほうが良いでしょう。
もし機械学習によりついてより深く学びたい時にはこの上ない良書です。また、内容とは直接関係ありませんが下記のようなデメリットがあります。
- 訳書ゆえの日本語の読みづらさ
- 電子書籍だとコード部分が読みづらい
- 一部表組みが乱れている?
前処理大全[データ分析のためのSQL/R/Python実践テクニック]


おすすめ度:☆☆☆☆
この本は今までと少し毛色が違い、『データ分析に入る前』のデータの取得やクレンジング(データを整形したり欠損値を埋めたり文字列を日付型に変えたりする作業)について解説されています。前処理というのは、実際にデータ分析を始める事ができるようにデータを整える作業全般のことを指します。
実務でデータを扱う際には欠損やエラーが一切ないデータはまずありませんし、Kaggleのような競技プログラミングでも意図的に欠損データを提供することもあります。
本職として機械学習エンジニアを目指すのであればあって損はない本かと思います。データベースの扱いなども出てきます。
Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理

おすすめ度:☆☆☆
O’Reillyのデータ分析入門書です。Pythonで数学を扱うためのライブラリNumpy(ナンパイ)と、テーブル形式のデータ表記ライブラリPandas(パンダス)を特に扱っています。
O’Reilly全般に言えることですが、入門と書いてあってもボリュームも相まって初学者が頭から読み下していくとどこかで必ず飽きがきます。まずはここまで紹介したような本で全体像を掴んでから、リファレンス的に利用されることをおすすめします。
Python機械学習クックブック

おすすめ度:☆☆☆☆
同じくO’Reillyのクックブックです。クックブックというのはその名の通りレシピ本みたいなもので、本書では200を超える実際の問題に対し、ベストプラクティスで答えるような書き方になっています。
トラブルにぶつかって躓いた時には非常にありがたいのですが、これも頭から1ページずつ参考書的に読む本ではありません。初歩的な知識が身について自分でコーディングしていく際には是非購入することをおすすめします。とても良書です(こころなしか他のO’Reillyより日本語が良いような…)
まとめ
Python入門書とPythonによる機械学習の入門書合計9冊をご紹介しました。いずれも私が購入して後悔していないものばかりです。
プログラミングに限ったことではないですが、初学者にとって最大の敵は『飽き』と『躓き』です。飽きずに1冊読み通せるのであれば少々内容が薄くても十分購入に値する本だと思います。
良い本と出会ってPythonの腕を磨いて下さい!
今回は以上です。お読みいただきありがとうございました。
コメント