① 依序閱讀:每節先讀說明;遇到互動元件時,先預測結果,再操作驗證。 ② 對照程式範例:程式碼卡下方的「來源」標了課程練習筆記本(lab);需要實作時,再打開原始筆記本對照。 ③ 檢查理解:答錯時先看回饋,再回到相關說明;標為延伸的內容可留待第二輪。 ④ 最後翻關鍵詞彙卡自測術語,並用 重點速查與來源查閱。
教科書:An Introduction to Statistical Learning with Applications in Python(ISLP)。章節旁的來源標記可點到本頁書目。
先完成讀取資料與繪圖的練習:開課程 notebook、讀入 Auto 汽車資料,畫出馬力對 mpg 的散佈圖。平時可以先用 Colab 練習;本機版本則建議和電腦教室一致,考前要熟悉教室的操作環境。
| 環境 | 啟動成本 | 適合情境 | 主要代價 |
|---|---|---|---|
| Colab(第一次上手推薦) | 瀏覽器開啟即可使用 | 第一次跑 lab、公用電腦、需要臨時 GPU | 執行階段會回收,套件需重裝 |
| 本機 conda | 需安裝環境並註冊 kernel | 本機練習、對齊教室版本 | 要管理環境與 Jupyter kernel |
| 本機 pip + venv | 需自行準備 Python 與 venv | 磁碟空間有限、熟悉 Python 環境 | Python 與套件版本需自行管理 |
%pip 開頭的百分比符號是 Jupyter 的魔術指令,意思是「裝到這個 notebook 正在用的 Python 裡」——比在終端機打 pip install 保險。
Ch01-lab-zh.ipynb
安裝輸出通常很長,沒有必要逐行閱讀。確認最後沒有紅色錯誤;若 Colab 要求重啟執行階段,照做即可。
來源:Ch02-statlearn-lab-zh.ipynb
你第一次要跑課程的 lab,手邊只有一台學校的公用電腦。最合理的做法是?
Colab 是跑在 Google 機器上的 Jupyter notebook。你可以直接在瀏覽器使用; 執行階段(runtime)會被回收。執行階段結束或被回收後, 你裝的套件與記憶體裡的變數都會消失,程式碼本身則存在你的 Drive 裡不會掉。
%pip install ISLP。可以把它留在 notebook 的第一格,方便重新執行。
cuML: Accelerator installed.
這兩行是課程 lab 拿來開 GPU 加速的(cudf 加速 pandas、cuml 加速 scikit-learn)。本機沒有 NVIDIA 顯卡的話會失敗,刪掉這兩行照樣能跑,只是慢一點。
Ch01-lab-zh.ipynb
自己決定三格的執行順序。每按一次,就等於在 notebook 執行那一格;
左邊的 [n] 是執行次序,不是儲存格位置。
| 執行序號 | 程式 | 執行 |
|---|---|---|
[ ] | x = 10 | |
[ ] | x = x * 2 | |
[ ] | print(x) |
| Colab 的東西 | 會不會留下 |
|---|---|
| 程式碼與文字(notebook 本身) | ✓ 存在你的 Google Drive |
%pip install 裝的套件 | ✗ 執行階段結束就沒了 |
| 變數與載入的資料 | ✗ 同上 |
/content/ 底下自己存的檔案 | ✗ 同上 |
| 掛載的 Google Drive 裡的檔案 | ✓ 那是你的雲端硬碟 |
你昨天在 Colab 跑得好好的 notebook,今天打開第一格就報 ModuleNotFoundError: No module named 'ISLP'。為什麼?
每一份課程 lab 的第一格都長得差不多:把要用的套件全部 import 進來。
這一格一定要先跑,不然後面每一格都會報 NameError。
注意最後那段 try / except:google.colab 只有在 Colab 上才有,本機跑的時候讓它安靜地把 drive 設成 None 就好。這是 try/except 的正確用法。你知道會發生什麼錯、也知道怎麼處理。
Ch02-statlearn-lab-zh.ipynb
每個 import 後面都有一句中文註解,說明那個套件負責什麼。先掃過一遍,之後看到 sns. 或 sm. 開頭就知道是誰。
Ch01-lab-zh.ipynb
| 套件 | 慣用簡稱 | 負責什麼 | 本站位置 |
|---|---|---|---|
| numpy | np | 陣列與數值運算 | P3 |
| pandas | pd | 資料表、選取與分組 | P4 |
| matplotlib | plt | Figure 與 Axes | P5 |
| seaborn | sns | 統計圖的高階介面 | P5 |
| statsmodels | sm | 係數、標準誤與 p 值 | P6 |
| scikit-learn | sklearn | fit、predict 與交叉驗證 | P6 |
你跳過第一格直接跑第三格,得到 NameError: name 'np' is not defined。該怎麼辦?
資料不會因為掛載 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,不要混用不同檔案的輸出。
Mounted at /content/drive
第一次會跳出授權視窗,選你的 Google 帳號按同意。掛好之後 Drive 就出現在 /content/drive/MyDrive/ 底下。
Ch02-statlearn-lab-zh.ipynb
這一行要改成你自己的路徑。把路徑存成變數,換資料夾時只要改一個地方。
來源:Ch02-statlearn-lab-zh.ipynb
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 已讀取後執行。圖的橫軸是 horsepower、縱軸是 mpg。含缺值的觀測不會畫成點;圖能出現只表示操作成功,還不能取代資料清理與統計判斷。
來源:Ch02-statlearn-lab-zh.ipynb
FileNotFoundError: /content/drive/MyDrive/Lab/Data/Auto.csv。最可能的原因是?
期中使用電腦教室電腦。本機練習請依課程版本建立獨立環境,並確認 Jupyter 選用同一環境的 kernel;詳細步驟可在需要時展開。
本機練習建議使用與電腦教室相同的 Python 與核心套件版本。依據是 課程官方 packages.txt,以下於 2026-09-05 核對;若清單更新,以官方檔案為準。
| 項目 | 官方清單版本 |
|---|---|
| Python | 3.9.13 |
| NumPy/pandas | 1.24.4/2.3.2 |
| scikit-learn/SciPy | 1.6.1/1.13.1 |
| statsmodels/Matplotlib | 0.13.2/3.5.2 |
| seaborn/ISLP | 0.13.2/0.4.0 |
| JupyterLab/ipykernel/Notebook | 3.4.4/6.15.2/6.4.12 |
先安裝 conda,再建立獨立環境。下面安裝清單中的核心套件;作業系統、其他相依套件與實際使用的 kernel 仍需核對。官方檔案是 pip list 形式的版本表,不能直接用 pip install -r packages.txt 安裝。
在 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.2 | other:pandas 1.5.3 | 兩個版本可以共存 |
import sys; print(sys.executable) 確認目前 kernel 使用哪一個 Python。
| 情境 | 建議 |
|---|---|
| 第一次上手、只想跑 lab | Colab |
| 本機練習 | 依官方清單設定 conda 環境,再核對版本與 kernel |
| 電腦空間很小 | pip + venv(不裝 Anaconda,省 3–5 GB) |
| 要用 GPU | Colab(本機要 NVIDIA 顯卡加 CUDA,很麻煩) |
| 交作業前的最後檢查 | 重啟 kernel 並全部重跑一次 |
| 期中考前 | 在電腦教室的電腦完整跑一次練習,熟悉開啟檔案、路徑與 kernel |
你在終端機 pip install ISLP 裝好了,但 Jupyter 裡還是 ModuleNotFoundError。最可能的原因?
先讀錯誤訊息最後一行,確認套件、資料路徑與正在使用的 kernel。重啟後由上到下執行,可檢查筆記本是否依賴先前殘留狀態。
以下四種情況整理了症狀、可能原因與檢查方式,遇到環境問題時可以依序核對。
| 症狀 | 先收集的證據 | 優先檢查 |
|---|---|---|
ModuleNotFoundError | sys.executable 與 kernel 名稱 | 套件是否裝在目前 kernel |
NameError | 變數第一次出現在哪一格、執行編號 | imports 或建立變數的儲存格是否已執行 |
FileNotFoundError | 錯誤中的完整路徑 | Drive 是否掛載、DATA_PATH 是否指向自己的資料夾 |
| 數值結果不同 | 資料版本、前處理、套件版本、seed、完整重跑結果 | 先定位差異來源,不要只憑結果猜是 seed |
相同 notebook 在不同執行環境得到不同結果,應先如何檢查?
回顧本頁觀念與原 Lab 的程式,確認各個操作的意義與使用條件。
在 Colab 的儲存格裡裝套件,該用哪一個?
notebook 左邊的 [7] 代表什麼?
為什麼本機練習建議依官方清單固定 Python 與套件版本?
你在本機的 conda 環境裝好了全部套件,但 Jupyter 裡 import 還是失敗。第一件要檢查的事是?
需要核對完整公式、比較表或實作時,再展開下方速查。
三張速查表。跑不動的時候回來看第二張。
| 環境 | 需要準備 | 適合誰 | 注意 |
|---|---|---|---|
| Colab | 帳號、網路與資料 | 第一次上手、公用電腦 | 執行階段會回收,套件要重裝 |
| conda 環境 | 安裝 conda 與套件 | 本機練習、對齊教室版本 | 依官方清單核對,記得選對 kernel |
| pip + venv | Python 與虛擬環境 | 電腦空間小 | 自己管 Python 版本 |
| 本機 base 環境 | — | 不建議 | 不同專案的版本需求可能互相影響 |
| 症狀 | 檢查原因 | 怎麼修 |
|---|---|---|
ModuleNotFoundError | 沒裝,或裝到別的環境 | %pip install X;檢查 kernel |
NameError | 某一格沒跑(多半是 imports) | 從第一格重跑 |
FileNotFoundError | 路徑不對或 Drive 沒掛 | 在檔案窗格複製正確路徑 |
| 結果跟同學不同 | 資料、前處理、版本、seed 或執行狀態不同 | 乾淨重跑後逐項比對,不先武斷歸因 |
| 改了程式卻沒變 | 改完沒重跑那一格 | 重啟並全部重跑 |
| 交作業前的檢查 | 為什麼 |
|---|---|
| 重啟 kernel | 清掉殘留的變數 |
| 從第一格全部重跑 | 確認不依賴亂序執行 |
| 必要步驟完成、沒有未處理錯誤 | 確認別人打開也跑得動 |
| 固定所有種子 | 確認別人跑得出同樣的數字 |
| DATA_PATH 有註明要改 | 別人的 Drive 結構跟你不同 |
詞彙卡整理本頁引用的課程 lab中常用的統計或機器學習專有名詞,正面附英文名稱。 先看正面的術語,試著說出定義,再翻面核對。可以洗牌複習,也可以搭配本章例子練習解釋。