はじめに
数年前、自分は業務の片隅で需要予測のプロトタイプを任されたことがある。Qiitaやブログの記事をつまみ食いしながらscikit-learnを動かし、それなりの精度が出て満足していた。ところがレビューで「なぜこの前処理を入れたのか」「過学習していない根拠は何か」と聞かれて、何も答えられなかった。
そこで気づいたのは、記事ベースの学習だと手順は増えるのに判断の軸が育たないということ。どのモデルを選ぶか、検証をどう設計するか、特徴量をどこまで作り込むか。この手の問いに答えるには、断片ではなく一本筋の通った説明が必要になる。
機械学習の書籍は無数にあるが、日本語で読めて、コードと図が豊富で、しかも理論から逃げていないものに絞ると候補はぐっと減る。自分は結局、薄い本で全体像をつかみ、データ処理の土台を固め、実装書で手を動かし、理論書で深掘りする順番に落ち着いた。
ここでは実際に手元で何度も開いた5冊を、その順番どおりに紹介する。網羅的なリストではなく、未経験から実務で説明責任を果たせるところまで持っていくための一本道として読んでほしい。
① 機械学習 100+ページ エッセンス [The Hundred-Page Machine Learning Book] — Andriy Burkov
著者のAndriy Burkovは機械学習の実務家で、Gartnerなどで機械学習チームを率いてきた人物だ。現場で必要な知識を極限まで圧縮するという編集方針が全編に貫かれている。
扱う範囲は驚くほど広い。線形モデル、決定木、SVM、ニューラルネットの基礎、そして評価指標やハイパーパラメータ調整まで、機械学習の地図がおおむね収まっている。数式は出てくるが、必要最小限に削られている。
分量が薄いので、通読に数日しかかからない。それでいて用語の定義が正確なので、後からもっと重い本を読むときの索引として機能する。
自分はこの本を読んでから、記事を読む速度が明らかに上がった。知らない単語が出てきても、どのあたりの話題かすぐ見当がつく。逆にこれ一冊で実装できるようにはならないので、手を動かす本と組み合わせる前提で使うのがいい。
こんな人に: 機械学習の用語がバラバラに頭に入っていて、全体像を一度つなげたい人
② Pythonによるデータ分析入門 第3版 ―pandas、NumPy、Jupyterを使ったデータ処理 — Wes McKinney
著者はpandasの作者本人。ライブラリの設計意図を知る人間が書いた解説なので、APIの背景にある考え方がそのまま伝わってくる。
中身はNumPyの配列操作から始まり、pandasのDataFrame、欠損値処理、グループ化、時系列、可視化へと進む。機械学習のモデルそのものは主題ではないが、モデルに食わせるデータを作る工程をここまで丁寧に扱った本は珍しい。
実務で時間を食うのは学習ではなく前処理だ。joinの粒度を間違えてリークを作り込む、インデックスの扱いを誤って行がずれる。この手の事故はモデルの知識では防げない。
自分はgroupbyとマルチインデックスの章を何度も読み返した。曖昧な理解でコピペしていた操作が、ここで初めて自分の言葉で説明できるようになった。リファレンス的に使える厚みなので、手元に置いておく価値がある。
こんな人に: pandasを雰囲気で書いていて、データ加工に自信が持てない人
③ Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎 — Andreas C. Müller, Sarah Guido
Andreas C. Müllerはscikit-learnのコアデベロッパーの一人。ライブラリの流儀をそのまま学べる教科書になっている。
教師あり学習と教師なし学習を一通り回しながら、特徴量エンジニアリング、パイプライン、交差検証、グリッドサーチといった実務の型を身につける構成だ。数式は控えめで、代わりに決定境界の図が大量に載っている。
特にパイプラインの章が効く。前処理を交差検証の内側に入れないと評価が甘くなるという話を、コードで体験させてくれる。自分が過去にやっていた失敗がそのまま書かれていて、少し恥ずかしくなった。
こんな人に: scikit-learnで動くものは作れるが、評価設計の正しさに不安がある人
④ [第3版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践 — Sebastian Raschka, Vahid Mirjalili
Sebastian Raschkaは機械学習の研究と教育の両方で知られ、PyTorch界隈でも発信を続けている。理論とコードの距離を縮める書き方がうまい。
パーセプトロンを自分で実装するところから始まり、正則化、次元削減、アンサンブル、そしてニューラルネットとPyTorchへと段階的に進む。ライブラリを呼ぶ前に中身を手で書かせる構成が特徴だ。
自分にとっての転機は、勾配降下法をNumPyで書き下す章だった。学習率を変えると何が壊れるのかが体感でわかると、ハイパーパラメータ調整が当て推量から抜け出す。
ページ数は多く、通読はそれなりに骨が折れる。興味のある章から拾い読みしても十分に機能する。
こんな人に: ライブラリの内側で何が起きているかを、コードレベルで確かめたい人
⑤ 強化学習(第2版) — Richard S. Sutton, Andrew G. Barto
SuttonとBartoは強化学習という分野そのものを形づくってきた研究者だ。この本は30年近く定番の座を守り続けている。
多腕バンディットから動的計画法、モンテカルロ法、TD学習、関数近似まで、理論の筋道を段階的に積み上げていく。擬似コードが丁寧なので、読みながら実装に落とせる。
強化学習は業務で使う機会が限られるが、報酬設計と探索のトレードオフという視点はレコメンドやA/Bテストの設計にも効いてくる。LLMの学習手法を理解する下地にもなる。
通読は重い。自分は前半の数章だけでも読む価値があると思っている。
こんな人に: 教師あり学習の外側に出て、意思決定を学習する枠組みを押さえたい人
まとめ
| ステップ | 読む本 | 得られるもの |
|---|---|---|
| 1. 全体像 | 機械学習 100+ページ エッセンス | 用語と手法の地図 |
| 2. 土台 | Pythonによるデータ分析入門 | pandasでの確実なデータ加工 |
| 3. 実装 | Pythonではじめる機械学習 | scikit-learnの型と評価設計 |
| 4. 深掘り | Python機械学習プログラミング | アルゴリズム内部の理解 |
| 5. 発展 | 強化学習 第2版 | 意思決定を学習する枠組み |
今の課題別に1冊だけ選ぶなら次のとおり。
- 何から手をつけるか決まらない → 機械学習 100+ページ エッセンス
- 前処理で毎回つまずく → Pythonによるデータ分析入門
- 精度の評価が信用できない → Pythonではじめる機械学習
- ライブラリの中身を説明できない → Python機械学習プログラミング
- 推薦や制御の設計に踏み込みたい → 強化学習 第2版
5冊すべてを順番に読む必要はない。自分がいま詰まっている場所に対応する1冊を選び、手を動かしながら読むのが一番早い。