『Pythonではじめる機械学習 -scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎』レビュー
著者: Andreas C. Muller / Sarah Guido
出版社: オライリー・ジャパン
¥500 Kindle価格
著者: Andreas C. Muller / Sarah Guido
出版社: オライリー・ジャパン
¥500 Kindle価格
『Pythonではじめる機械学習』は、scikit-learnを軸に機械学習の基本を一通り実装しながら学べる定番の入門書です。強みは、単にアルゴリズムを列挙するのではなく、機械学習のプロジェクトを進めるうえで本当に重要な流れを、最初から最後まで崩さず追わせてくれる点にあります。冒頭ではアイリスの分類問題を使って、データを読み、訓練データとテストデータに分け、最初のモデルとしてk-最近傍法を試し、予測と評価まで行います。ここで「とりあえず動くものを1度作る」という感覚を掴ませたうえで、教師あり学習、教師なし学習、前処理、特徴量エンジニアリング、評価、パイプライン、テキスト処理へと進んでいきます。
著者がscikit-learnの開発に深く関わってきたこともあり、本書の説明はライブラリの使い方に終始しません。たとえば2章では、線形モデル、ナイーブベイズ、決定木、アンサンブル、SVM、ニューラルネットワークまで触れながら、どのモデルがどんなデータで効きやすいか、過剰適合や適合不足をどう考えるかを整理します。3章では教師なし学習と前処理、4章ではカテゴリ変数、ビニング、多項式特徴、特徴量選択、専門家知識の利用まで扱い、モデル選びより前に「何を入力として作るか」がどれほど重要かを繰り返し示してくれます。
最大の読みどころは、タイトルにも入っている特徴量エンジニアリングの章です。日本語の機械学習入門書は、アルゴリズムの概要や深層学習の華やかな話題に寄りがちですが、実務ではデータの表現をどう設計するかで性能が大きく変わります。本書は、ワンホットエンコーディング、ビニング、交互作用、多項式特徴、単変量統計、モデルベース特徴量選択、反復特徴量選択まできちんと触れ、前処理を“おまけ”にしません。ここが理解できると、機械学習がブラックボックスな魔法ではなく、問題設定と表現設計の積み重ねだとわかります。
5章と6章も実務上かなり重要です。交差検証、グリッドサーチ、評価基準、モデル選択の考え方をまとめたうえで、パイプラインに接続していく流れが非常にわかりやすいです。初学者は前処理を訓練データとテストデータで別々に扱えずリークを起こしたり、評価指標を精度だけで済ませたりしがちですが、本書はそうした典型的な落とし穴を早い段階で避けさせてくれます。scikit-learnの Pipeline や GridSearchCV を使う意味が、APIの丸暗記ではなく、実験を再現可能に保つための設計として理解できるのがよいです。
7章のテキスト処理も魅力です。映画レビューのセンチメント分析を例に、Bag of Words、tf-idf、n-グラム、ストップワード、語幹処理、見出し語化、LDAによるトピックモデリングまで扱います。表形式データだけでなく自然言語の入口まで見せてくれるので、読後に「次は自分のデータで試したい」と思いやすいです。最後の章で、運用、独自Estimator、今後の学習分野まで視野を広げる構成も親切です。
AI全般の概説書やG検定向けの教科書は、用語の整理や全体像の把握には向いていますが、実際にコードを書いて学ぶ段になると少し距離があります。その点、本書はJupyter Notebookで手を動かしながら理解を積み上げられます。一方で、深層学習専門書のように数式を掘り下げるタイプではなく、古典的な機械学習を道具として使うための地力を育てる本です。
また、単なるscikit-learnのAPIリファレンスでもありません。アルゴリズムの選択より、データの見方、評価の仕方、実験の組み立て方に重点が置かれているので、実務への接続が強いです。深層学習ブームの中でも本書が長く読まれているのは、前処理、特徴量、評価といった“地味だが外せない基礎”が色褪せないからだと思います。
Pythonの基本文法はわかるが、機械学習の実装経験がまだ浅い人に最も向いています。データ分析を仕事にしたいエンジニア、研究室で機械学習を使い始める学生、ノートブック上で試行錯誤しながら学びたい独学者に勧めやすいです。特に、モデルを1つ動かして終わりではなく、前処理から評価まで一連の流れをちゃんと理解したい人には相性がいいです。
逆に、線形代数や確率統計の理論を厳密に学びたい人には補助教材が必要になりますし、最新の大規模言語モデルやTransformerの実装を求める人には範囲外です。ただ、そうした先端テーマへ進む前提として、本書で機械学習の基本姿勢を押さえておく価値は大きいです。
この本を読んで1番強く感じるのは、機械学習の学習で本当に難しいのはアルゴリズム名を覚えることではなく、「問題をどう切り分け、どのデータ表現で、どう評価するか」を一貫して考えることだという点です。本書はそこをぶらしません。アイリス分類のような小さな例から入り、クラスタリング、特徴量選択、グリッドサーチ、テキスト処理まで進むうちに、機械学習の作業が1本の流れとして頭に入ってきます。
特に良いのは、成功例だけでなく、過剰適合やデータリークのような失敗しやすいポイントを早めに学べることです。これによって、ただ「動いた」で満足せず、モデルの妥当性を疑う姿勢が身につきます。scikit-learnを入口にしていますが、そこで学べるのはライブラリ固有の手順ではなく、機械学習を扱うための考え方そのものです。AIブームの中で手っ取り早い解説が増えた今でも、基礎を手で身につけたい人にとっての価値は高いままだと感じます。