把環境準備好:跑出第一張圖

課前準備 B — 選讀,不列入評分
平時可用 Colab|期中使用電腦教室電腦|本機與教室使用相同版本|確認 kernel 與資料路徑|考前完整重跑練習
向下捲動開始互動↓
📌 本頁使用方式(課前 · 環境安裝)

① 依序閱讀:每節先讀說明;遇到互動元件時,先預測結果,再操作驗證。 ② 對照程式範例:程式碼卡下方的「來源」標了課程練習筆記本(lab);需要實作時,再打開原始筆記本對照。 ③ 檢查理解:答錯時先看回饋,再回到相關說明;標為延伸的內容可留待第二輪。 ④ 最後翻關鍵詞彙卡自測術語,並用 重點速查與來源查閱。

教科書:An Introduction to Statistical Learning with Applications in Python(ISLP)。章節旁的來源標記可點到本頁書目。

CONTENTS · 內容目錄
PROLOGUE · 開場

從開啟筆記本到跑出第一張圖 課程 Lab Ch1 · lab 範例

先完成讀取資料與繪圖的練習:開課程 notebook、讀入 Auto 汽車資料,畫出馬力對 mpg 的散佈圖。平時可以先用 Colab 練習;本機版本則建議和電腦教室一致,考前要熟悉教室的操作環境。

期中考準備:熟悉電腦教室的環境 期中考使用電腦教室的電腦。平時可用 Colab 學習,但本機練習建議依 課程官方套件版本清單 設定,並在考前用教室電腦完整跑一次練習。下方「本機安裝」說明如何核對 Python、套件與 kernel。
第一次上手路徑 開啟 Ch02 中文課程 notebook(Colab),選「在雲端硬碟中儲存副本」。先執行安裝套件與 imports;第一次使用 CPU 即可,先跳過 cudf/cuml 的 GPU 擴充。接著照下方「資料放哪裡」取得 Auto.csv,完成第一張圖。
比較其他執行環境
環境啟動成本適合情境主要代價
Colab(第一次上手推薦)瀏覽器開啟即可使用第一次跑 lab、公用電腦、需要臨時 GPU執行階段會回收,套件需重裝
本機 conda需安裝環境並註冊 kernel本機練習、對齊教室版本要管理環境與 Jupyter kernel
本機 pip + venv需自行準備 Python 與 venv磁碟空間有限、熟悉 Python 環境Python 與套件版本需自行管理
裝課程用的套件
%pip install ISLP

%pip 開頭的百分比符號是 Jupyter 的魔術指令,意思是「裝到這個 notebook 正在用的 Python 裡」——比在終端機打 pip install 保險。

來源:Ch01-lab-zh.ipynb
ISLP 會順便安裝相依套件
%pip install ISLP

安裝輸出通常很長,沒有必要逐行閱讀。確認最後沒有紅色錯誤;若 Colab 要求重啟執行階段,照做即可。

來源:Ch02-statlearn-lab-zh.ipynb
PART 00 · 自我檢測

你第一次要跑課程的 lab,手邊只有一台學校的公用電腦。最合理的做法是?

(A) 用 Colab,登入自己的 Google 帳號
(B) 在公用電腦上裝 Anaconda
(C) 先買一台自己的電腦
PART 01 · Colab 操作流程

筆記本會保存,執行階段會回收 課程 Lab Ch1 · lab 範例

Colab 是跑在 Google 機器上的 Jupyter notebook。你可以直接在瀏覽器使用; 執行階段(runtime)會被回收。執行階段結束或被回收後, 你裝的套件與記憶體裡的變數都會消失,程式碼本身則存在你的 Drive 裡不會掉。

最常見的一個誤會 「我明明裝過 ISLP 了,怎麼又說找不到?」,因為那是上一個執行階段裝的。連到新的執行階段之後要再跑一次 %pip install ISLP。可以把它留在 notebook 的第一格,方便重新執行。
Colab 上的加速選項
%load_ext cudf.pandas %load_ext cuml.accel
預期輸出
cuML: Accelerator installed.

這兩行是課程 lab 拿來開 GPU 加速的(cudf 加速 pandas、cuml 加速 scikit-learn)。本機沒有 NVIDIA 顯卡的話會失敗,刪掉這兩行照樣能跑,只是慢一點。

來源:Ch01-lab-zh.ipynb

自己決定三格的執行順序。每按一次,就等於在 notebook 執行那一格; 左邊的 [n] 是執行次序,不是儲存格位置。

執行序號程式執行
[ ]x = 10
[ ]x = x * 2
[ ]print(x)
› 請自行選一格開始;也可以故意先按第 2 或第 3 格。
自訂概念示意三格程式用來呈現 notebook 的狀態與執行順序;數值不是課程資料。
執行順序與記憶體狀態
同一格可以重跑,也可以跳著跑。執行時會使用目前記憶體中的變數,所以執行順序會影響結果。
交作業前
重啟執行階段並由上到下全部執行,確認結果不依賴先前殘留的變數。
Colab 的東西會不會留下
程式碼與文字(notebook 本身)✓ 存在你的 Google Drive
%pip install 裝的套件✗ 執行階段結束就沒了
變數與載入的資料✗ 同上
/content/ 底下自己存的檔案✗ 同上
掛載的 Google Drive 裡的檔案✓ 那是你的雲端硬碟
PART 01 · 自我檢測

你昨天在 Colab 跑得好好的 notebook,今天打開第一格就報 ModuleNotFoundError: No module named 'ISLP'。為什麼?

(A) notebook 檔案壞掉了
(B) 執行階段被回收了,套件要重裝
(C) ISLP 這個套件被下架了
PART 02 · 匯入套件

先執行本份筆記本的匯入程式 課程 Lab Ch2 · lab 範例

每一份課程 lab 的第一格都長得差不多:把要用的套件全部 import 進來。 這一格一定要先跑,不然後面每一格都會報 NameError。

課程 lab 的 imports(第 2 章)
# 本 Notebook 使用的匯入(imports) import os # 檔案與環境變數/路徑處理 import numpy as np # 數值運算與陣列處理 import pandas as pd # 資料表格與資料處理 from matplotlib.pyplot import subplots # 建立子圖與繪圖版面 try: from google.colab import drive # Colab:掛載 Google Drive except Exception: drive = None # 非 Colab 環境

注意最後那段 try / except:google.colab 只有在 Colab 上才有,本機跑的時候讓它安靜地把 drive 設成 None 就好。這是 try/except 的正確用法。你知道會發生什麼錯、也知道怎麼處理。

來源:Ch02-statlearn-lab-zh.ipynb
另一份筆記本的完整匯入清單
第 1 章的 imports
# 本 Notebook 使用的匯入(imports) import os # 檔案與環境變數/路徑處理 import numpy as np # 數值運算與陣列處理 import pandas as pd # 資料表格與資料處理 import matplotlib as mpl # Matplotlib 設定與後端 import matplotlib.pyplot as plt # 繪圖指令與樣式 import seaborn as sns # 統計視覺化 from sklearn.preprocessing import scale # 特徵標準化 from sklearn.decomposition import PCA # 主成分分析 (PCA) from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis # 二次判別分析 (QDA) from ISLP import load_data # ISLP 書籍資料集載入 try: from google.colab import drive # Colab:存取 Google Drive except Exception: drive = None # 非 Colab 環境

每個 import 後面都有一句中文註解,說明那個套件負責什麼。先掃過一遍,之後看到 sns. 或 sm. 開頭就知道是誰。

來源:Ch01-lab-zh.ipynb
查閱:套件分工與附錄位置
套件慣用簡稱負責什麼本站位置
numpynp陣列與數值運算P3
pandaspd資料表、選取與分組P4
matplotlibpltFigure 與 AxesP5
seabornsns統計圖的高階介面P5
statsmodelssm係數、標準誤與 p 值P6
scikit-learnsklearnfit、predict 與交叉驗證P6
PART 02 · 自我檢測

你跳過第一格直接跑第三格,得到 NameError: name 'np' is not defined。該怎麼辦?

(A) 重新安裝 numpy
(B) 把 np 改成 numpy
(C) 回去把第一格跑一次
PART 03 · 資料放哪裡

掛 Drive、或直接讀網址 課程 Lab Ch2 · lab 範例

資料不會因為掛載 Drive 就自動出現。第一次請依序完成下面四步:

步驟操作與完成標準
1. 取得資料下載課程 Auto.csv。若瀏覽器顯示文字,另存為 Auto.csv,保留副檔名。
2. 放進自己的 Drive在 Google Drive 建立 Lab/Data 資料夾,將 Auto.csv 上傳到裡面。
3. 掛載並設定路徑在 Colab 執行下方掛載儲存格;DATA_PATH 改成 /content/drive/MyDrive/Lab/Data/,或你實際建立的資料夾。
4. 讀取、檢查、畫圖先確認有 horsepower 與 mpg 欄,再執行下方繪圖步驟。成功時會看到橫軸 horsepower、縱軸 mpg 的散佈圖。

另可下載課本的 官方 CSV 資料壓縮檔,解壓後取得 Auto.csv。不同來源可能已做過清理,列數與特殊值不一定一樣;本頁起步與 00C 的清理練習都使用上面的課程 Auto.csv,不要混用不同檔案的輸出。

掛載 Drive
drive.mount('/content/drive')
預期輸出
Mounted at /content/drive

第一次會跳出授權視窗,選你的 Google 帳號按同意。掛好之後 Drive 就出現在 /content/drive/MyDrive/ 底下。

來源:Ch02-statlearn-lab-zh.ipynb
設一個路徑變數
# Replace DATA_PATH with your path DATA_PATH = "/content/drive/MyDrive/00_Statistical_learning/Lab/Data/"

這一行要改成你自己的路徑。把路徑存成變數,換資料夾時只要改一個地方。

來源:Ch02-statlearn-lab-zh.ipynb
讀進來
Auto = pd.read_csv(os.path.join(DATA_PATH,'Auto.csv')) Auto
預期輸出
     Unnamed: 0   mpg  cylinders  displacement  horsepower  weight  \
0             1  18.0          8         307.0         130    3504   
1             2  15.0          8         350.0         165    3693   
2             3  18.0          8         318.0         150    3436   
3             4  16.0          8         304.0         150    3433   
4             5  17.0          8         302.0         140    3449   
..          ...   ...        ...           ...         ...     ...   
387         393  27.0          4         140.0          86    2790   
388         394  44.0          4          97.0          52    2130   
389         395  32.0          4         135.0          84    2295   
390         396  28.0          4         120.0          79    2625   
391         397  31.0          4         119.0          82    2720   

     acceleration  year  origin                       name  
0            12.0    70       1  chevrolet chevelle malibu  
1            11.5    70       1          buick skylark 320  
2            11.0    70       1         plymouth satellite  
3            12.0    70       1              amc rebel sst  
4            10.5    70       1                ford torino  
..            ...   ...     ...                        ...  
387          15.6    82       1            ford mustang gl  
388          24.6    82       2                  vw pickup  
389          11.6    82       1              dodge rampage  
390          18.6    82       1                ford ranger  
391          19.4    82       1                 chevy s-10  

[392 rows x 10 columns]

os.path.join 幫你處理斜線,比自己用加號接字串保險。下方保存的是老師當時檔案的輸出;你的檔案若少了 Unnamed: 0 這類索引欄,先核對來源,不要手動補造資料。

來源:Ch02-statlearn-lab-zh.ipynb

接著以指定的特殊值規則重新讀取,讓 horsepower 能作數值運算。請在自己的檔案執行這段設定並查看輸出;P4 會說明參數的作用。

Auto = pd.read_csv(os.path.join(DATA_PATH, 'Auto.csv'), na_values=['?']) print(Auto.shape) print(Auto[['horsepower', 'mpg']].dtypes) print(Auto[['horsepower', 'mpg']].isna().sum())
畫第一張散佈圖
ax = Auto.plot.scatter('horsepower', 'mpg') ax.set_title('Horsepower vs. MPG');

在上面的 Auto 已讀取後執行。圖的橫軸是 horsepower、縱軸是 mpg。含缺值的觀測不會畫成點;圖能出現只表示操作成功,還不能取代資料清理與統計判斷。

來源:Ch02-statlearn-lab-zh.ipynb
PART 03 · 自我檢測

FileNotFoundError: /content/drive/MyDrive/Lab/Data/Auto.csv。最可能的原因是?

(A) DATA_PATH 沒改成你自己的資料夾位置
(B) Drive 掛載失敗
(C) 檔案格式不對
PART 04 · 本機與考前準備

期中使用電腦教室電腦,本機練習建議使用教室版本 conda 文件 · 環境管理

期中使用電腦教室電腦。本機練習請依課程版本建立獨立環境,並確認 Jupyter 選用同一環境的 kernel;詳細步驟可在需要時展開。

本機練習:版本、安裝指令與 kernel 設定

本機練習建議使用與電腦教室相同的 Python 與核心套件版本。依據是 課程官方 packages.txt,以下於 2026-09-05 核對;若清單更新,以官方檔案為準。

項目官方清單版本
Python3.9.13
NumPy/pandas1.24.4/2.3.2
scikit-learn/SciPy1.6.1/1.13.1
statsmodels/Matplotlib0.13.2/3.5.2
seaborn/ISLP0.13.2/0.4.0
JupyterLab/ipykernel/Notebook3.4.4/6.15.2/6.4.12

先安裝 conda,再建立獨立環境。下面安裝清單中的核心套件;作業系統、其他相依套件與實際使用的 kernel 仍需核對。官方檔案是 pip list 形式的版本表,不能直接用 pip install -r packages.txt 安裝。

# 建立本地練習環境 conda create -n m524 python=3.9.13 -y # 依官方清單安裝核心分析套件 conda run -n m524 python -m pip install numpy==1.24.4 pandas==2.3.2 scikit-learn==1.6.1 scipy==1.13.1 statsmodels==0.13.2 matplotlib==3.5.2 seaborn==0.13.2 ISLP==0.4.0 # 安裝 notebook 工具,註冊 kernel conda run -n m524 python -m pip install jupyterlab==3.4.4 ipykernel==6.15.2 notebook==6.4.12 conda run -n m524 python -m ipykernel install --user --name m524 # 核對版本,並由這個環境啟動 JupyterLab conda run -n m524 python --version conda run -n m524 python -m pip list conda run -n m524 jupyter lab

在 JupyterLab 開啟練習 notebook,選擇 m524 kernel,再執行 import sys; print(sys.version); print(sys.executable) 確認實際使用的 Python。若安裝失敗,保留完整錯誤訊息並核對相依套件。更換版本後也要重新確認與教室的差異。

做法課程專案另一個專案結果
全部裝在 base需要 pandas 2.3.2需要 pandas 1.5.3同一環境只能留下其中一版,容易互相影響
各自建立環境m524:pandas 2.3.2other:pandas 1.5.3兩個版本可以共存
四步驟的順序 建立環境 → 安裝套件 → 註冊 kernel → 選擇/啟用環境。上面的命令區列出這些步驟;完成後還要在 Jupyter 選擇 m524 kernel。若 Jupyter 說找不到已安裝的套件,先用 import sys; print(sys.executable) 確認目前 kernel 使用哪一個 Python。
情境建議
第一次上手、只想跑 labColab
本機練習依官方清單設定 conda 環境,再核對版本與 kernel
電腦空間很小pip + venv(不裝 Anaconda,省 3–5 GB)
要用 GPUColab(本機要 NVIDIA 顯卡加 CUDA,很麻煩)
交作業前的最後檢查重啟 kernel 並全部重跑一次
期中考前在電腦教室的電腦完整跑一次練習,熟悉開啟檔案、路徑與 kernel
PART 04 · 自我檢測

你在終端機 pip install ISLP 裝好了,但 Jupyter 裡還是 ModuleNotFoundError。最可能的原因?

(A) 要重開電腦
(B) Jupyter 用的 kernel 不是你剛剛裝套件的那個環境
(C) ISLP 不支援你的作業系統
PART 05 · 跑不動的時候

四種常見執行問題與檢查方法 Python 文件 · 例外

先讀錯誤訊息最後一行,確認套件、資料路徑與正在使用的 kernel。重啟後由上到下執行,可檢查筆記本是否依賴先前殘留狀態。

遇到問題再查:症狀、原因與排解步驟

以下四種情況整理了症狀、可能原因與檢查方式,遇到環境問題時可以依序核對。

症狀先收集的證據優先檢查
ModuleNotFoundErrorsys.executable 與 kernel 名稱套件是否裝在目前 kernel
NameError變數第一次出現在哪一格、執行編號imports 或建立變數的儲存格是否已執行
FileNotFoundError錯誤中的完整路徑Drive 是否掛載、DATA_PATH 是否指向自己的資料夾
數值結果不同資料版本、前處理、套件版本、seed、完整重跑結果先定位差異來源,不要只憑結果猜是 seed
還是跑不動的話
問人之前先做這三件事
① 重啟並全部重跑;② 複製完整 traceback,先看最後一行,並保留最靠近自己程式的出錯位置;③ 確認是哪一格出錯、那一格用到哪些變數。先做這三件事,可以縮小問題範圍,也方便別人協助你檢查。
可以直接把錯誤訊息丟給 AI 嗎?
可以。環境問題可以透過錯誤訊息、版本與執行結果核對,適合請 AI 提出除錯建議。但要把完整的錯誤訊息與你實際跑的那一格都給它,不要只說「我的程式跑不動」。如何核對統計結果,見 00A。
交作業之前一定要做的一件事 重啟執行階段 → 從第一格全部重跑 → 確認所有必要步驟完成,沒有未處理錯誤。這樣可以檢查作業是否依賴你機器上殘留的變數或特殊執行順序。
🔗 接下來讀什麼 環境好了就可以開始了。沒寫過程式的話從 P1 Python 基礎 開始;寫過但沒碰過資料科學套件的,直接跳到 P3 NumPy。想先知道「AI 都會了為什麼還要學」,看 00A。
PART 05 · 自我檢測

相同 notebook 在不同執行環境得到不同結果,應先如何檢查?

(A) 先從乾淨 kernel 全部重跑,再比資料、前處理、版本與 seed
(B) 一定是其中一邊沒有固定 seed
(C) 直接把兩人的 MSE 平均起來
EXERCISES · 練習

動手驗證:概念自測 課前 · 自我檢測

回顧本頁觀念與原 Lab 的程式,確認各個操作的意義與使用條件。

EXERCISE 1 · 裝套件

在 Colab 的儲存格裡裝套件,該用哪一個?

(A) !pip install ISLP
(B) import ISLP
(C) %pip install ISLP
EXERCISE 2 · 執行順序

notebook 左邊的 [7] 代表什麼?

(A) 這是第 7 個儲存格
(B) 這一格是這個 kernel 的第 7 次執行
(C) 這一格跑了 7 秒
EXERCISE 3 · 版本

為什麼本機練習建議依官方清單固定 Python 與套件版本?

(A) 新版本有 bug
(B) 舊版本比較快
(C) 減少本機與電腦教室的環境差異
EXERCISE 4 · 假故障

你在本機的 conda 環境裝好了全部套件,但 Jupyter 裡 import 還是失敗。第一件要檢查的事是?

(A) Jupyter 右上角顯示的 kernel 是不是那個環境
(B) 重裝 Anaconda
(C) 改用 Colab
重點速查與來源

環境安裝速查表 課前 · 環境安裝

來源:完整書目與章節定位

本頁書目與章節定位

  • 教科書:An Introduction to Statistical Learning with Applications in Python。James、Witten、Hastie、Tibshirani、Taylor,2023。原書與下載資訊

需要核對完整公式、比較表或實作時,再展開下方速查。

查閱完整速查與延伸提醒

三張速查表。跑不動的時候回來看第二張。

環境需要準備適合誰注意
Colab帳號、網路與資料第一次上手、公用電腦執行階段會回收,套件要重裝
conda 環境安裝 conda 與套件本機練習、對齊教室版本依官方清單核對,記得選對 kernel
pip + venvPython 與虛擬環境電腦空間小自己管 Python 版本
本機 base 環境—不建議不同專案的版本需求可能互相影響
症狀檢查原因怎麼修
ModuleNotFoundError沒裝,或裝到別的環境%pip install X;檢查 kernel
NameError某一格沒跑(多半是 imports)從第一格重跑
FileNotFoundError路徑不對或 Drive 沒掛在檔案窗格複製正確路徑
結果跟同學不同資料、前處理、版本、seed 或執行狀態不同乾淨重跑後逐項比對,不先武斷歸因
改了程式卻沒變改完沒重跑那一格重啟並全部重跑
交作業前的檢查為什麼
重啟 kernel清掉殘留的變數
從第一格全部重跑確認不依賴亂序執行
必要步驟完成、沒有未處理錯誤確認別人打開也跑得動
固定所有種子確認別人跑得出同樣的數字
DATA_PATH 有註明要改別人的 Drive 結構跟你不同
三個閱讀重點 1. 平時可用 Colab;考前熟悉教室環境。本機版本依官方清單設定,並在教室電腦完整跑過練習。
2. 跑不動時,先檢查環境與執行順序。先重啟 kernel 並全部重跑,確認執行狀態。
3. 交作業前一定要從頭重跑一次。不然你交的是「只有你那台機器跑得出來」的東西。
CARDS · 關鍵詞彙卡

關鍵詞彙卡:點卡片翻面 課程詞彙

詞彙卡整理本頁引用的課程 lab中常用的統計或機器學習專有名詞,正面附英文名稱。 先看正面的術語,試著說出定義,再翻面核對。可以洗牌複習,也可以搭配本章例子練習解釋。

複習:展開關鍵詞彙卡