『Pythonではじめる機械学習』は機械学習を始めたい人に最適な良書

『Pythonではじめる機械学習』はタイトルの通り「機械学習を始めたい」という人におすすめの良書。 「機械学習」あるいは「AI(人工知能)」という言葉に対する過度な期待は収まりつつあるが、機械学習自体は様々な分野で当たり前のように使われる技術になっています。とりあえずツールとして機械学習を使ってみたいという人、機械学習の入門書を探しているという人にぜひ読んでみてほしい。 Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎Andreas C. Muller Sarah Guido オライリージャパン Amazon.co.jpで詳細を見る 注意点と良い点を紹介します。

目次・内容 GitHubのサンプルコード 注意点 / こんな人にはオススメできない まったくのPython初心者には難しい ディープラーニングについての説明はごくわずか 良い点 / こんな人にオススメしたい 機械学習アルゴリズムの説明が実践的 特徴量エンジニアリングの説明が実践的 scikit-learnの入門書としても最適 まとめ
目次・内容 正式な書名は『Pythonではじめる機械学習 ――scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎』。Pythonのライブラリscikit-learnを使って機械学習を行う方法が詳細に解説されています。 目次は以下の通り。全392ページ。

1章 はじめに 2章 教師あり学習 3章 教師なし学習と前処理 4章 データの表現と特徴量エンジニアリング 5章 モデルの評価と改良 6章 アルゴリズムチェーンとパイプライン 7章 テキストデータの処理 8章 おわりに

より詳しい目次はオライリーの公式サイト参照。

O'Reilly Japan - Pythonではじめる機械学習

GitHubのサンプルコード

最近の多くの書籍と同様に、本書でもGitHubにサンプルコードが公開されています。原著のものなのでコメントは英語のまま。

amueller/introduction_to_ml_with_python: Notebooks and code for the book "Introduction to Machine Learning with Python"

各章がひとつのJupyter Notebookファイル(ipynb)になっており、GitHub上でそのまま開くとキレイに表示されます。もちろんcloneあるいはダウンロードしてローカルで実際に動かすこともできます。 書籍では残念ながら図表が白黒だがJupyter Notebookではカラーで表示されるので、適宜参照しながら読むといいと思います。コードもシンタックスハイライトが効いているほうが見やすい。

注意点 / こんな人にはオススメできない

まったくのPython初心者には難しい

Python自体はじめて、という人にはおそらく難しい内容。 他のプログラミング言語には精通している、というような場合だとなんとかなるかもしれないが、上記のGitHubのサンプルコードを確認して手も足も出なさそうであれば、まずはPythonの入門書から始めたほうがいいと思います。 Pythonの入門書としては以下のものがおすすめ。

また、Pythonはある程度分かっているという人も、NumPyおよびpandasの知識がないとサンプルコードの理解が難しい部分があるかもしれない。とりあえず本書のサンプルコードを写経して動かしてみるだけなら問題ないだろうが、実際に自分のデータで試してみる際にはNumPy, pandasによる前処理は必須。 NumPy, pandasは『Pythonデータサイエンスハンドブック』で詳しく解説されています。

ディープラーニングについての説明はごくわずか

ニューラルネットワークおよびディープラーニングについても触れられているが、分量は10ページ程度。ディープラーニングをやってみたい、ディープラーニングを学びたい、という人にはおすすめできません。 ただ、「ディープラーニングってなんかすごそう」というようなイメージだけでディープラーニングにこだわっているのであれば、むしろ本書を読んでみるといいと思います。ディープラーニングは確かに強力だが、他の機械学習アルゴリズムのほうが適している場合もあります。

良い点 / こんな人にオススメしたい

機械学習アルゴリズムの説明が実践的

2章では教師あり学習、3章では教師なし学習のアルゴリズムについて代表的なものが説明されています。 数式で厳密に理論を説明する、といったものではなく、サンプルデータを使ったグラフで各アルゴリズムの特徴が視覚的に説明されています。上記のGitHubのサンプルコード(.ipynb)を見るとどんな感じか雰囲気が分かると思います。 素晴らしいのが各アルゴリズムについて「長所、短所、パラメータ」がまとめられている点。 「このアルゴリズムはどういう場面に適している / 適していない」というのが簡潔にまとめられています。また、重要なパラメータとそのチューニングの指針(大きくする / 小さくするとどうなるか)も説明されているので、実際に機械学習を試してみる際には非常に役立つだろう。

特徴量エンジニアリングの説明が実践的

アルゴリズムの説明だけでなく、特徴量エンジニアリングの説明も実践的。 機械学習を行う上では、元の特徴量をビニングしたり複数の特徴量の積を新たな特徴量とするなどの「特徴量エンジニアリング」が必要となります。 本書では、なぜそのような処理が機械学習の性能を向上させるのかという理屈がシンプルに説明されています。 さらに、例えば決定木ベースのモデルを使うのであればビニングしても多くの場合は意味がない、というような、モデルにとってどのような特徴量エンジニアリングが必要となるかについても述べられています。

scikit-learnの入門書としても最適

紹介されているすべてのアルゴリズムについてscikit-learnでどのように実装するかがサンプルコードとともに示されています。著者のAndreas Mueller氏はscikit-learnのメンテナでもあるのでその正確さは間違いないはず。 LightGBMなどの新しいライブラリもscikit-learnに準拠したインターフェイスを備えているものが多い。機械学習におけるデファクトスタンダードともいえるscikit-learnのインターフェイスに慣れておくことはこの先も役に立つだろう。

まとめ

一昔前の「データサイエンティスト」のように「機械学習エンジニア」や「AIエンジニア」を目指す人は増えているようだが、機械学習は特にそれを専門とする人以外も日常的に使うツールになっていくと思われる。 「機械学習エンジニア」を目指している人にとってもそうでない人にとっても、とりあえず機械学習を使い始めるための準備として本書『Pythonではじめる機械学習』は最適の一冊だと思います。 Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎Andreas C. Muller Sarah Guido オライリージャパン Amazon.co.jpで詳細を見る

Last Updated: 6/26/2019, 10:34:03 PM