電腦科學

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 / 導讀

導讀

機器學習:讓驗證單位匹配預測任務

比較兩條免費統計學習路線與綜合人工智慧參考,用原創重複裝置驗證和部署變式,審查留行、留組、近鄰距離及外推邊界。

學習計畫與例題由 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頁,共十三章。它承接 R 版(ISLR)第二版(2021),R 版第一版於2013年出版;本版在原本四位作者之外,加入了 Jonathan Taylor。作者將本書定位為寫給所有想使用現代資料分析工具者的、涵蓋面廣且技術性較低的統計學習論述。除導論外,每章都以一個 Python 實作(lab)作結,作者開發的 ISLP 套件提供實作所需的資料集與輔助函式。edX 上提供附影片講座的配套課程。

第1章:Introduction(導論)

全書開頭的十三頁導論;與其他各章不同,本章沒有實作。

第2章:Statistical Learning(統計學習)

約五十頁,說明什麼是統計學習,以及後續各章使用的架構。實作是 Python 入門,內容包括 NumPy 陣列、索引、用 pandas 讀入資料、繪圖與迴圈。

第3章:Linear Regression(線性迴歸)

以約六十五頁深入討論迴歸;實作配適簡單線性迴歸與複線性迴歸,檢查配適度,並加入交互作用項、預測變數的非線性轉換與質性預測變數。

第4章:Classification(分類)

邏輯斯迴歸、線性與二次判別分析、單純貝氏與K最近鄰,以股市資料加以比較;實作也對共享單車的使用次數配適線性迴歸與卜瓦松迴歸。

第5章:Resampling Methods(重抽樣方法)

驗證集方法、交叉驗證與拔靴法,用來估計測試誤差與估計量的變異。

第6章:Linear Model Selection and Regularization(線性模型選擇與正則化)

最佳子集選擇與逐步選擇、脊迴歸與 lasso,以及降維方法(主成分迴歸與偏最小平方),並以交叉驗證在模型之間做選擇。

第7章:Moving Beyond Linearity(超越線性)

多項式迴歸、階梯函數、樣條、平滑樣條、局部迴歸與廣義加成模型。

第8章:Tree-Based Methods(樹狀方法)

分類樹與迴歸樹、裝袋法、隨機森林、提升法與貝氏加成迴歸樹。

第9章:Support Vector Machines(支援向量機)

支援向量分類器與支援向量機、ROC 曲線、多類別問題,以及在基因表現資料上的應用。

第10章:Deep Learning(深度學習)

單層與多層網路、用於影像的卷積網路、文件分類,以及用於序列的遞迴網路。實作使用 PyTorch(搭配 PyTorch Lightning),處理 Hitters、MNIST、CIFAR-100 與 IMDb 資料,把神經網路與 lasso 比較,使用預訓練的卷積網路,並配適時間序列模型。

第11章:Survival Analysis and Censored Data(存活分析與設限資料)

處理帶有設限的事件發生時間資料的方法,實作將其應用於腦癌、論文發表時間與客服中心資料。

第12章:Unsupervised Learning(非監督式學習)

主成分分析、矩陣補全,以及 K 平均法與階層式分群,以 NCI60 癌細胞株資料為例。

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

同時檢定大量假設的問題:假設檢定回顧、族系誤差率、錯誤發現率,以及一種重抽樣方法。

核心概念

第1–5章:基礎

  • 統計學習:一組用來建模與理解預測變數和反應變數之間關係的工具,也就是第2章闡述的架構。
  • 線性迴歸的延伸:在線性模型中加入交互作用項、轉換後的預測變數與質性預測變數。
  • 分類方法:針對類別型結果的邏輯斯迴歸、判別分析、單純貝氏與K最近鄰。
  • 交叉驗證與拔靴法:以重抽樣估計測試誤差與估計量的不確定性。

第6–9章:超越最小平方法

  • 正則化:縮減係數(脊迴歸、lasso)以改善預測;lasso 還能進行變數選擇。
  • 樣條與廣義加成模型:在保有可解釋性的同時進行彈性的非線性配適。
  • 樹的集成:裝袋法、隨機森林與提升法結合許多棵樹以提高準確度。
  • 支援向量機:以分隔超平面與核函數為基礎的分類器。

第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》以非技術性的方式說明當前人工智慧能做與不能做的事,在概念層次解釋神經網路與深度學習,適合作為配套讀物。Kevin Murphy 的《Probabilistic Machine Learning: An Introduction》透過機率建模與貝氏決策理論處理相近的內容,數學要求高得多,是讀完 ISLP 後自然的下一步。

Russell 與 Norvig 的《Artificial Intelligence: A Modern Approach》是人工智慧的綜合概論,從搜尋、邏輯到規劃、學習、語言與機器人,機器學習只是其中一部分;在這類課程的統計學習部分,ISLP 能提供深入得多的實務訓練。Szeliski 的《Computer Vision: Algorithms and Applications》是一本專門教科書,ISLP 第10章關於卷積網路的內容,是學習其深度學習部分的有用準備。

如何使用本書

本書適合大學高年級學生、統計以外科系的研究生,以及具備基礎統計與些許 Python 的實務工作者。

實用的閱讀計畫:

  • 核心順序: 第2–6章構成基礎(統計學習架構、迴歸、分類、重抽樣與正則化),應依序閱讀。
  • 之後依興趣選讀: 非線性方法、樹與支援向量機讀第7–9章;深度學習讀第10章;非監督式學習讀第12章。第11章與第13章適合生物統計、醫學,或任何需要同時進行大量檢定的領域的讀者。
  • 做完每一個實作。 讀完一章後,在筆記本中執行該章實作,再用 ISLP 套件中的另一個資料集重做分析。
  • 利用線上課程觀看影片講座,並查看勘誤頁面。

讀完 ISLP 後想學習理論的讀者,應繼續閱讀數學性更強的教科書。

作者的配套課程

Stanford Online 的 Statistical Learning with Python(SOHS-YSTATSLEARNINGP,史丹佛人文與科學學院)提供一條有系統的學習途徑。這是一門完全線上、隨選觀看的 edX 課程,而非校內實體課,頁面也未列出開課學期。本書是這門線上課程的配套教材。講座涵蓋2023年 Python 版的全部內容,包括迴歸與分類、重抽樣、正則化、非線性方法、樹、支援向量機、深度學習、存活模型、多重檢定,以及部分非監督式方法;課程沒有公布對應的章節編號、頁碼範圍或每週閱讀進度。

課程中的計算全部以 Python 進行,教學單元從 Python 基礎逐步推進到各章方法的實作,與本書從第2章 Python 實作開始的進程相互對應。課程頁面沒有列出正式的先修條件,本頁開頭列出的先備知識可作為準備參考。

作者另有一門平行的 R 課程,對應 R 版第二版;兩門課共用各章講座,但計算實作部分依語言而不同。以 R 學習的讀者可以觀看同樣的講座,但應搭配 R 版第二版的實作,而非 ISLP 的實作。

若要結合課程與本書:先看某一章的講座,再讀 ISLP 對應章節,接著自己完成 Python 實作,最後才觀看課程的計算實作單元。

聚焦閱讀與版本界線

以下試做使用本站配套指南的原創題,請先開啟題目,核對條件和資料。

閱讀路線: 在2023年 Python 版中,依序讀統計學習、分類與重抽樣方法,再讀模型選擇討論的部分內容。

繼續前試做: 為同一重複裝置表寫兩種驗證問題,各選劃分單位。檢查標準: 留一行不等於留出產生它的裝置。

版本與存取: 本頁列出的版本(Springer,2023,ISBN 9783031387463)即 Python 版,也就是上述 Stanford Online 課程所涵蓋的同一本書,與 R 版不同。作者網站將它與 R 版第一版(2013)及第二版(2021)分開列出,且未給予版次編號,因此請引用為2023年 Python 版。作者提供免費 PDF;執行實作筆記本時,留意文件列出的套件版本。

Springer 書籍頁面