コンピュータサイエンス

An Introduction to Statistical Learning: with Applications in Python(統計的学習入門:Pythonによる応用)

Gareth James; Daniela Witten; Trevor Hastie; Robert Tibshirani; Jonathan Taylor

英語原題: An Introduction to Statistical Learning: with Applications in Python

An Introduction to Statistical Learning: with Applications in Python(統計的学習入門:Pythonによる応用) cover

予測・分類・再標本化の概念とPython実習を組み合わせる統計学習入門。数学負担を抑え、基礎統計とプログラミングから進める。

前提知識

回帰・標本変動・条件付き確率を復習し、Pythonの表と学習・予測手順を読めること。実習前に何を留保するか定義する。

出版年
2023
難易度レベル
初級
学術レベル
学部
machine learningstatistical learningpythonregressionclassification教科書

01 / 読書ガイド

読書ガイド

機械学習:検証単位を予測の問いに合わせる

二つの無料統計学習書と総合AI書を比べ、独自の反復機器データと配備変更で行・群の分割と距離の保証を点検します。

学習順路・例題の編集責任:University Reading List編集プロジェクト。

引用

James, G., Witten, D., Hastie, T., Tibshirani, R., & Taylor, J. (2023). An Introduction to Statistical Learning: with Applications in Python. Springer (Springer Texts in Statistics).

章の要約

Python版(ISLP)は約600ページ、全13章からなる。R版(ISLR)の第2版(2021年)に続くもので、R版の初版は2013年に刊行された。この版では、もとの4人の著者にJonathan Taylorが加わっている。著者らは本書を、現代的なデータ分析の道具を使いたいすべての人に向けた、統計的学習の幅広く、技術的な度合いを抑えた解説と位置づけている。序章を除くすべての章はPythonの演習(ラボ)で終わり、著者らのISLPパッケージがラボで使うデータセットと補助関数を提供する。動画講義付きのコンパニオン講座がedXで提供されている。

第1章:Introduction(序論)

本書の冒頭に置かれた13ページの序論。他の章と異なり、ラボはない。

第2章:Statistical Learning(統計的学習)

約50ページの章で、統計的学習とは何か、そして後の章が用いる枠組みを示す。ラボはPython入門で、NumPyの配列、インデックス操作、pandasによるデータの読み込み、作図、ループを扱う。

第3章:Linear Regression(線形回帰)

約65ページにわたって回帰を詳しく扱う。ラボでは単回帰と重回帰を当てはめ、適合度を確かめ、交互作用項、説明変数の非線形変換、質的な説明変数を加える。

第4章:Classification(分類)

ロジスティック回帰、線形判別分析と二次判別分析、ナイーブベイズ、K近傍法を株式市場のデータで比較する。ラボでは、自転車シェアリングの利用回数に線形回帰とポアソン回帰も当てはめる。

第5章:Resampling Methods(リサンプリング法)

検証セット法、交差検証、ブートストラップを扱い、これらをテスト誤差や推定値のばらつきの推定に用いる。

第6章:Linear Model Selection and Regularization(線形モデルの選択と正則化)

最良部分集合選択と逐次選択、リッジ回帰とラッソ、次元削減の方法(主成分回帰と部分最小二乗法)を扱い、モデルの選択には交差検証を用いる。

第7章:Moving Beyond Linearity(線形を超えて)

多項式回帰、階段関数、スプライン、平滑化スプライン、局所回帰、一般化加法モデルを扱う。

第8章:Tree-Based Methods(木に基づく方法)

分類木と回帰木、バギング、ランダムフォレスト、ブースティング、ベイズ加法回帰木を扱う。

第9章:Support Vector Machines(サポートベクターマシン)

サポートベクター分類器とサポートベクターマシン、ROC曲線、多クラス問題、遺伝子発現データへの応用を扱う。

第10章:Deep Learning(深層学習)

単層・多層のネットワーク、画像のための畳み込みネットワーク、文書分類、系列のための再帰型ネットワークを扱う。ラボではPyTorch(およびPyTorch Lightning)を使い、Hitters、MNIST、CIFAR-100、IMDbのデータを扱う。ネットワークをラッソと比較し、事前学習済みの畳み込みネットワークを使い、時系列モデルを当てはめる。

第11章:Survival Analysis and Censored Data(生存時間解析と打ち切りデータ)

打ち切りを伴うイベント発生までの時間のデータを扱う方法で、ラボでは脳腫瘍、論文の出版までの時間、コールセンターのデータに適用する。

第12章:Unsupervised Learning(教師なし学習)

主成分分析、行列補完、K平均法と階層的クラスタリングを、NCI60のがん細胞株データを例に扱う。

第13章:Multiple Testing(多重検定)

多数の仮説を同時に検定する問題を扱う。仮説検定の復習、族単位の誤り率、偽発見率、リサンプリングによる方法である。

主要概念

第1–5章:基礎

  • 統計的学習:説明変数と応答の関係をモデル化し理解するための一群の道具。第2章で示される枠組み。
  • 線形回帰の拡張:線形モデルの中での交互作用項、変換した説明変数、質的な説明変数。
  • 分類の方法:カテゴリーの結果に対するロジスティック回帰、判別分析、ナイーブベイズ、K近傍法。
  • 交差検証とブートストラップ:テスト誤差と推定値の不確実性を見積もるためのリサンプリング。

第6–9章:最小二乗法を超えて

  • 正則化:予測を改善するために係数を縮小すること(リッジ、ラッソ)。ラッソでは変数選択も行われる。
  • スプラインと一般化加法モデル:解釈可能性を保ちながら柔軟に非線形の当てはめを行う方法。
  • 木のアンサンブル:バギング、ランダムフォレスト、ブースティングは多数の木を組み合わせて精度を高める。
  • サポートベクターマシン:分離超平面とカーネルに基づく分類器。

第10–13章:現代的な話題

  • ニューラルネットワーク:畳み込み型や再帰型を含む層状のモデルで、勾配に基づく学習で当てはめられる。
  • 打ち切り:イベント発生時間が不完全にしか観測されないこと。生存時間解析の方法で扱う。
  • 主成分とクラスタリング:結果変数のないデータの中に構造を見いだすこと。
  • 偽発見率:棄却した仮説のうち偽陽性が占める割合の期待値を制御すること。

批判的分析

長所

  • 高度な数学なしで近づける。 著者らは、現代的なデータ分析の道具を使うすべての人に向けた、幅広く技術的な度合いを抑えた解説を目指している。本書のサイトで引用されている『Journal of the American Statistical Association』のR版の書評は、本書をよく書かれていて読みやすいと評し、学部生にも、数量的な志向の強くない大学院生や実務家にも適していると述べている。
  • すべての章にラボがある。 各章のPythonのラボは、線形回帰からPyTorchによる深層学習まで、実際のデータセットで方法を試していくので、読者は読んだことを応用する力を身につけられる。ISLPパッケージとそのオンライン文書により、データセットと補助関数を簡単に導入できる。
  • 幅広く新しい内容。 古典的な方法に加えて、深層学習、生存時間解析、行列補完、ベイズ加法回帰木、多重検定を扱っている。
  • 無料の資料。 著者らはstatlearning.comで各版の無料PDFを公開しており、edXのコンパニオン講座はすべての章を扱う動画講義を提供している。
  • R版の講座と共通の概念的な中核。 PythonとRのコンパニオン講座は章ごとの講義を共有しており、主な違いは計算実習の部分にある(後述のコンパニオン講座を参照)。

短所

  • 理論は少なめ。 意図的に技術的な度合いを抑えた解説なので、完全な導出を求める本ではない。本書のサイトに載っているカーネギーメロン大学の統計学者の推薦文は、本書がHastie、Tibshirani、Friedmanの『The Elements of Statistical Learning』に触発されたものだと述べており、数学を学ぶにはそちらのより技術的な本を読むことになる。
  • 計算機科学より統計学。 重点は統計学の観点からの回帰、分類、リサンプリングにある。強化学習、大規模な最適化、機械学習システムの工学といった話題は範囲外である。
  • ソフトウェアの変化。 ラボはPythonパッケージの特定のバージョンに依存しているので(文書にはパッケージのバージョンが記されている)、ライブラリの変化に応じてコードを調整する必要が出てくることがある。
  • 講座の読書計画は大まかである。 著者ら自身のオンラインのコンパニオン講座は本書をたどる構造化された道筋を示すが、章番号やページ範囲による週ごとの読書計画は示していない。

コースにおける位置づけ

ISLPは、このコースにおける機械学習への入り口である。Melanie Mitchellの『Artificial Intelligence: A Guide for Thinking Humans』は、現在のAIに何ができて何ができないかを数式なしで説明する本で、ニューラルネットワークと深層学習を概念のレベルで解説しており、並行して読むのに適している。Kevin Murphyの『Probabilistic Machine Learning: An Introduction』は、確率的モデリングとベイズ決定理論を通して同様の範囲を扱い、数学の比重がかなり大きい。ISLPの後に進む自然な一冊である。

RussellとNorvigの『Artificial Intelligence: A Modern Approach』は、探索や論理から計画、学習、言語、ロボット工学までを扱うAIの幅広い概説書で、機械学習はその多くの部分の一つにすぎない。そうした授業の統計的学習の部分については、ISLPのほうがはるかに深い実践的な訓練を与える。Szeliskiの『Computer Vision: Algorithms and Applications』は専門書であり、ISLPの第10章の畳み込みネットワークは、その深層学習の部分への準備として役に立つ。

本書の使い方

本書は、学部上級生、統計学以外の分野の大学院生、そして基礎的な統計学と多少のPythonを知っている実務家に向いている。

実践的な読み方:

  • 中核の順序: 第2–6章が基礎をなす(統計的学習の枠組み、回帰、分類、リサンプリング、正則化)。順番に読む。
  • その後は関心に応じて: 非線形の方法、木、SVMなら第7–9章、深層学習なら第10章、教師なし学習なら第12章。第11章と第13章は、生物統計学や医学、多数の検定を同時に行う分野の読者に向いている。
  • すべてのラボを行う。 章を読んだ後に、その章のラボをノートブックで実行し、ISLPパッケージの別のデータセットで分析を繰り返してみる。
  • オンライン講座を使う。 動画講義を利用し、正誤表のページで訂正を確認する。

ISLPを読み終えて理論を学びたくなった読者は、より数学的な教科書に進むとよい。

著者らのコンパニオン講座

本書を学ぶ道筋の一つが、Stanford OnlineのStatistical Learning with Python(SOHS-YSTATSLEARNINGP、School of Humanities and Sciences)である。これはキャンパスの授業ではなく、完全オンライン・オンデマンドのedX講座で、決まった開講学期は示されていない。本書はこのオンライン講座のコンパニオン・テキストである。講義は2023年のPython巻の内容をすべて扱う。具体的には、回帰と分類、リサンプリング、正則化、非線形の方法、木、サポートベクターマシン、深層学習、生存時間モデル、多重検定、および一部の教師なし学習の方法である。章番号やページ範囲による週ごとの読書計画は示されていない。

講座の計算はすべてPythonで行われる。チュートリアルはPythonの基礎から各章の方法の実装へと進み、第2章のPythonラボから始まる本書の流れと対応している。講座ページには正式な前提条件は記載されておらず、冒頭に挙げた前提知識は本ガイドとしての推奨である。

著者らは、R版第2版に対応する並行のR講座も提供している。章ごとの講義は共通だが、計算実習はそれぞれの言語に合わせた別のものである。Rで学ぶ読者は同じ講義を視聴できるが、ISLPではなくR版第2版のラボと組み合わせるべきである。

講座と本を併用するなら、ある章の講義を視聴してISLPの対応する章を読み、講座の計算実習を見る前にPythonのラボを自分で解いてみるとよい。

焦点を絞った読み方と版の区別

以下の課題には、当サイト独自の関連例題の条件とデータを使います。先に問題文を確認してください。

読む範囲: 2023年Python巻の「Statistical Learning」「Classification」「Resampling Methods」を読み、続いてモデル選択の議論の一部を読む。

先に試す課題: 同じ機器の反復測定表について、正当な検証の問いを二つ立て、それぞれに分割単位を選ぶ。 確認基準: 一行を外すことと、その行を生んだ機器全体を外すことは別。

版と利用範囲: ここに挙げた版(Springer、2023年、ISBN 9783031387463)はPython巻であり、上記のStanford Online講座が扱う2023年のPython巻に当たる。R版とは別の本で、著者らのサイトはR版の初版(2013年)・第2版(2021年)と分けて掲載し、版番号を付けていないため、「2023年Python版」として引用するとよい。著者らは無料PDFを提供している。ラボのノートブックを使う際は、ドキュメントに指定されたパッケージのバージョンを確認するとよい。

出版社のページ:Springer