f 是什麼、誤差從哪來

ISLP 第 2 章 — 對應講義 02
Y = f(X) + ε|f(x) = E(Y|X = x)|可縮減 vs 不可縮減|鄰域平均與維度詛咒|偏差² + 變異 + Var(ε)|Bayes 分類器|KNN
向下捲動開始互動↓
📌 本頁使用方式(ISLP Ch.2|講義 02)

① 依序閱讀:每節先讀說明;遇到互動元件時,先預測結果,再操作驗證。 ② 對照來源:章節旁標示課本章節與講義主題,正文保留公式、條件與算例;計算細節、完整實作與證明預設收合,可按需要展開。來源標記可查原教材。 ③ 檢查理解:答錯時先看回饋,再回到相關說明;標為延伸的內容可留待第二輪。 ④ 最後翻關鍵詞彙卡自測術語,並用 重點速查與來源查閱。

教科書:An Introduction to Statistical Learning with Applications in Python(ISLP);
進階參考:The Elements of Statistical Learning(ESL)。章節旁的來源標記可點到本頁書目。

CONTENTS · 內容目錄
PROLOGUE · 開場

把「學習」寫成一條式子:Y = f(X) + ε 教科書 · 第 2.1 節講義 02

第 1 章介紹了統計學習的用途。這一章要把它寫成一條式子, 之後九章的方法都可以用這條式子來理解:

$$Y = f(X) + \varepsilon$$

$Y$ 是你想預測的那個東西(銷售量、油耗、會不會違約), $X = (X_1, \dots, X_p)$ 是你手上量得到的那些變數。 $f$ 是「$X$ 對 $Y$ 提供的系統性資訊」——固定不變、真實存在,但你永遠看不到它。 $\varepsilon$ 是剩餘的隨機誤差,滿足 $E[\varepsilon\mid X]=0$。

整章只做兩件事:(一)怎麼估 f、(二)怎麼判斷估得好不好。 第二件事會影響方法的選擇,因為「在訓練資料上擬合得好」 不代表「在新資料上也預測得準」。

為什麼一定要有 ε 這一項 把它拿掉,式子就變成 Y = f(X),等於宣稱 「只要知道 X 就能完全算出 Y」。這在真實世界幾乎不成立:
1. 沒量到的變數:病人對藥物的反應還跟基因、當天狀況有關,而你沒有那些欄位。
2. 無法量的變異:同一批藥的製造差異、同一個人不同天的身體狀況。
3. 量測誤差:儀器本身就有雜訊。
ε 包含這些誤差來源。它的變異數 Var(ε) 決定可達到的誤差下限。這是下一節的主題。

先把兩個常見的目的分清楚,因為它們會導向完全不同的方法選擇:

預測(prediction)推論(inference)
你要什麼Ŷ 愈接近 Y 愈好描述 X 與 Y 的條件關聯
f̂ 可以是黑盒子嗎可以,重點是預測準確度不行,必須看得懂
典型問題這封信是垃圾郵件嗎?這支股票明天多少?控制其他媒體後,哪種廣告仍與銷售量相關?價格與銷量如何一起變動?
偏好的模型彈性高的(提升法、神經網路)可解釋的(線性模型、lasso)
本章對應§2.2 怎麼量準不準§2.1.3 彈性換掉了解釋力

兩者也可以同時要。房價模型既想知道「靠河的房子貴多少」(推論), 也想知道「這間房子被高估了嗎」(預測)。只是通常得在中間選一個折衷點。

QUIZ · Y = f(X) + ε

下列哪一句話正確描述了式子 Y = f(X) + ε 裡的 f?

(A) f 是固定但未知的函數,代表 X 對 Y 提供的系統性資訊
(B) f 是我們擬合出來的模型,會隨著訓練資料改變
(C) f 包含了所有影響 Y 的因素,所以 ε 只是量測誤差
PART 01 · 兩種誤差

可縮減與不可縮減誤差的來源 教科書 · 第 2.1.1 節講義 02

先考慮一個問題:如果你猜對了 f,誤差會是 0 嗎? 不會。假設 $\hat f$ 與 $X$ 都固定,只有 $\varepsilon$ 在變動,那麼

$$E\left(Y - \hat Y\right)^2 = \underbrace{\left[f(X) - \hat f(X)\right]^2}_{\text{可縮減}} + \underbrace{\mathrm{Var}(\varepsilon)}_{\text{不可縮減}}$$

這是 ISLP 式 2.3。左邊是你會量到的平均平方誤差,右邊拆成兩塊:

講義把同一件事寫成條件版本——把 $X = x$ 固定住, 只看這一個點上的均方誤差。這是後面每一章都會再用到的一行:

$$E\left[\left(Y - \hat f(x)\right)^2 \mid X = x\right] = \left[f(x) - \hat f(x)\right]^2 + \mathrm{Var}(\varepsilon)$$
證明:把 $E[(Y - \hat f(x))^2 \mid X = x]$ 一步一步拆成 $[f(x) - \hat f(x)]^2 + \mathrm{Var}(\varepsilon)$

前提。模型是 $Y = f(X) + \varepsilon$,其中 $E[\varepsilon \mid X] = 0$、$\mathrm{Var}(\varepsilon \mid X) = \sigma^2$。 把 $X = x$ 固定住,並且把 $\hat f$ 當成已經訓練好、不再變動的函數。 於是 $f(x)$ 與 $\hat f(x)$ 都只是常數,式子裡唯一還在隨機的東西只有 $\varepsilon$。

第 1 步:把 $Y$ 換掉。令 $d(x) = f(x) - \hat f(x)$,它是一個常數:

$$Y - \hat f(x) = f(x) + \varepsilon - \hat f(x) = d(x) + \varepsilon$$

第 2 步:平方展開。

$$\left(Y - \hat f(x)\right)^2 = d(x)^2 + 2\,d(x)\,\varepsilon + \varepsilon^2$$

第 3 步:取條件期望。期望是線性的,常數提得出來:

$$E\left[(Y - \hat f(x))^2 \mid X = x\right] = d(x)^2 + 2\,d(x)\,E[\varepsilon \mid X = x] + E[\varepsilon^2 \mid X = x]$$

第 4 步:把後面兩項算掉。中間那一項因為 $E[\varepsilon \mid X = x] = 0$ 而整項消失。最後一項用同一個條件:

$$E[\varepsilon^2 \mid X = x] = \mathrm{Var}(\varepsilon \mid X = x) + \left(E[\varepsilon \mid X = x]\right)^2 = \sigma^2 + 0 = \mathrm{Var}(\varepsilon)$$

結論。兩項留下來,正好就是講義寫的那一行:

$$E\left[(Y - \hat f(x))^2 \mid X = x\right] = \underbrace{\left[f(x) - \hat f(x)\right]^2}_{\text{可縮減}} + \underbrace{\mathrm{Var}(\varepsilon)}_{\text{不可縮減}}$$

怎麼讀它。第一項是你動得到的:換方法、加資料、加變數都會讓它變小, 理論上可以趨近 0。第二項完全不受方法影響,就算 $\hat f = f$ 也一樣在。

另外請注意「$\hat f$ 固定不動」這個前提。如果把訓練資料本身的隨機性 也算進來(每換一份訓練集就得到不同的 $\hat f$),第一項還會再拆成偏差平方與變異兩塊, 那是本頁後面偏差–變異拆解那一節的事。

下面的元件把這兩塊分開來看:真實的 $f$ 固定不動,只有雜訊的 $\sigma$ 在變。 在 $x$ 這條垂直線上,$Y$ 有一整個分佈,觀測值相對於中心的上下變動就是 $\varepsilon$。

›拖動 σ 滑桿,看期望測試誤差的不可縮減下限跟著抬高。
σ1.0
概念示意
怎麼玩這個元件 ISLP 式 2.3
真實的 f(綠色虛線)固定不動,只有雜訊的 σ 在變。綠色淡帶是 f ± σ 的範圍。拖滑桿把 σ 拉大,觀察資料點如何變得更分散——而 f 一動也沒動。
期望測試誤差的組成
σ(雜訊的標準差)1.0
Var(ε) = σ² ← 下限1.00
完美 f 的期望測試 MSE—
線性 f̂ 的期望測試 MSE—
獨立測試網格上的可縮減部分—
期望誤差如何計算
線性模型先在訓練樣本上擬合,再到獨立而密集的 x 網格計算$E[(Y-\hat f(X))^2]=\sigma^2+E[(f(X)-\hat f(X))^2]$。

到這裡還有一個坑沒有填:我們一直講「真實的 $f$」,可是 $f$ 本身到底是什麼?在 $X = x$ 這一點上,$f(x)$ 要取哪個數字才算最好? 下一節先把它定義清楚、證明它真的最好,再處理「拿不到它的時候怎麼辦」。

觀念釐清
Q:「不可縮減誤差」到底不可縮減在哪?多蒐集資料有用嗎?多加變數呢?

增加同類樣本不會改變不可縮減誤差;加入有用變數則會改變 ε 的定義,讓其中一部分能由 X 解釋。

不可縮減誤差是 $\mathrm{Var}(\varepsilon)$,而 $\varepsilon$ 的定義是 $Y - E[Y \mid X]$,也就是「在給定這組 X 之後,Y 還剩下的變異」。資料量 n 變大只會讓你把 f 估得更準(減少可縮減誤差),$\mathrm{Var}(\varepsilon)$ 是母體的性質,跟你抽了幾筆完全無關。

加變數就不一樣了。假設病人的反應其實還跟基因型有關,而你原本沒量。那部分變異現在被塞在 $\varepsilon$ 裡。一旦把基因型加進 X,條件期望值換成了 $E[Y \mid X, \text{基因型}]$——它能解釋的變異只多不少,剩下的殘差因此只小不大:$E\big[\mathrm{Var}(Y \mid X, \text{基因型})\big] \le E\big[\mathrm{Var}(Y \mid X)\big]$。(新變數真的帶進資訊時才會嚴格變小;毫無關係的變數只會讓等號成立。)所以嚴格說法是:不可縮減誤差的下限由你使用的這組 X 決定。

實務上的意義:如果經重複評估得到的測試風險已逼近你估計的 $\mathrm{Var}(\varepsilon)$,可優先考慮蒐集新變數,再評估是否需要更換模型或調整參數。

PART 02 · 理想的 f 與最近鄰平均

資料點夠就直接取條件期望;不夠才退到鄰域平均 教科書 · 第 2.1 節講義 02

上一節一直在講「真實的 $f$」,但沒說 $f$ 在某一點上該取哪個數字。 講義用一個非常具體的問題把答案逼出來:手上的資料裡, $X = 4$ 的地方有一整群不同的 $Y$,而你只能給一個預測值。要給哪一個?

答案:取那一群 Y 的平均 f(4) = E(Y | X = 4),也就是「在 X = 4 的條件下,Y 的平均值」。 每個 x 都這樣做,串起來的那個函數就叫迴歸函數(regression function)。
$$f(x) = E\left[Y \mid X = x\right]$$

$X$ 是向量時完全一樣,只是條件多掛幾個(講義):

$$f(x) = f(x_1, x_2, x_3) = E\left[Y \mid X_1 = x_1,\, X_2 = x_2,\, X_3 = x_3\right]$$

問題來了:為什麼是平均?中位數不行嗎?眾數不行嗎? 行不行取決於你用什麼量尺算帳,而這門課的回歸量尺是平方誤差。 講義那一行講的就是這件事:

講義怎麼說 就均方預測誤差而言,理想的(也就是最佳的)$Y$ 的預測函數是 f(x) = E(Y | X = x):在所有函數之中、在每一個 X = x 點上, 它讓 E[(Y − f(X))² | X = x] 最小。
也就是說:在平方誤差之下,條件期望值不是「一個還不錯的選擇」, 而是所有函數裡最好的那一個——沒有任何函數能贏過它。下面把它證出來。
證明:證明:在每一點 $X = x$ 上,$c = E[Y \mid X = x]$ 讓 $E[(Y - c)^2 \mid X = x]$ 最小

要證的事。對任意函數 $f$,在每一點 $X = x$ 上都有

$$E\left[(Y - f(X))^2 \mid X = x\right] \;\ge\; E\left[(Y - \mu(x))^2 \mid X = x\right], \qquad \mu(x) = E[Y \mid X = x]$$

第 0 步:把「對所有函數」降級成「對一個數字」。 $X = x$ 固定之後,$f(X)$ 就只是一個數字 $f(x)$,不再是函數。 所以「在所有函數裡找最好的」可以拆成「在每一點各自找最好的常數 $c = f(x)$」。 只要每一點的最佳常數都是 $\mu(x)$,把這些點串起來的那個函數就是最佳函數。 這正是講義那句「在所有函數上、在每一個 $X = x$ 點上」的意思。

第 1 步:加一項、減一項。硬把 $\mu(x)$ 塞進去:

$$Y - c = \underbrace{\left(Y - \mu(x)\right)}_{\text{隨機,條件期望 } 0} + \underbrace{\left(\mu(x) - c\right)}_{\text{常數}}$$

左邊那一塊的條件期望確實是 0:$E[Y - \mu(x) \mid X = x] = \mu(x) - \mu(x) = 0$。 這就是整個證明的樞紐。

第 2 步:平方展開,取條件期望。

$$E\left[(Y - c)^2 \mid X = x\right] = E\left[(Y - \mu(x))^2 \mid X = x\right] + 2\left(\mu(x) - c\right)\underbrace{E\left[Y - \mu(x) \mid X = x\right]}_{=\,0} + \left(\mu(x) - c\right)^2$$

第 3 步:交叉項歸零。剩下乾乾淨淨的兩項:

$$E\left[(Y - c)^2 \mid X = x\right] = \underbrace{\mathrm{Var}\left(Y \mid X = x\right)}_{\text{跟 } c \text{ 完全無關}} + \underbrace{\left(\mu(x) - c\right)^2}_{\ \ge\ 0}$$

第 4 步:讀式子。第一項是資料本身的條件變異,你挑什麼 $c$ 都改不動它; 第二項是一個平方,最小值 0 只在 $c = \mu(x)$ 時取到,而且只有這一點取到。所以

$$\arg\min_{c} E\left[(Y - c)^2 \mid X = x\right] = \mu(x) = E[Y \mid X = x]$$

順帶得到一件事:能達到的最小值就是 $\mathrm{Var}(Y \mid X = x)$, 也就是上一節的不可縮減誤差 $\mathrm{Var}(\varepsilon)$。兩節在這裡接起來了。

第 5 步:從一點推到全部。上式對每一個 $x$ 分別成立, 所以函數 $f^{*}(x) = E[Y \mid X = x]$ 在每一點都不輸給任何其他函數。 要全域版本就再對 $X$ 取一次期望(全期望公式):

$$E\left[(Y - f(X))^2\right] = E\Big[\,E\left[(Y - f(X))^2 \mid X\right]\Big]$$

括號裡的東西逐點被 $f^{*}$ 最小化,外面再取期望當然也最小。$\blacksquare$

換個誤差就換個答案。如果改用絕對誤差 $E\left[\,\left|Y - c\right| \mid X = x\right]$,最佳的 $c$ 會變成條件中位數。 所以「取平均」不是天經地義,是平方誤差挑出來的。 這也解釋了為什麼本課後面量準確度時,回歸看 MSE、分類看錯誤率—— 量尺不同,最佳預測就不同。

如果資料點夠多,事情就簡單得多。 假設 $X = 4$ 這個位置真的躺著幾百筆觀測,那你什麼模型都不用建: 把那幾百筆的 $y$ 平均起來,就是 $E[Y \mid X = 4]$ 的估計, 而它要估的那個東西,照剛才的證明就是平方誤差下最好的預測。 獨立抽樣、變異數有限時,鄰域內筆數 $m$ 愈多,樣本平均就愈接近母體的條件期望。

麻煩在於「夠多」幾乎不會發生。講義下一頁就潑冷水:

講義:恰好落在 X = 4 的資料通常寥寥無幾,甚至一筆都沒有! X 是連續變數時,恰好落在 4 的機率是 0;就算 X 是離散的, 只要多掛幾個維度,每一格的資料筆數也會很快掉到 1 筆或 0 筆。 所以 E(Y | X = x) 這個定義沒辦法照字面計算。 不是它不對,是你手上沒有那麼多剛好落在 x 的資料。

那就把定義放鬆:不要求「剛好等於 $x$」,改成「離 $x$ 夠近」。 這就是最近鄰平均(nearest neighbor averaging),講義的式子:

$$\hat f(x) = \mathrm{Ave}\left(Y \mid X \in N(x)\right)$$

$N(x)$ 是 $x$ 的一個鄰域——可以是「離 $x$ 最近的 $k$ 筆」, 也可以是「$\left|X - x\right| \le h$ 的那些筆」。這一步看起來只是權宜之計, 其實是整個非參數式方法的原型:第 7 章的核平滑與樣條、第 8 章的樹、 第 4 章的 KNN 分類,骨子裡都是它的變形。

放鬆是有代價的,而且代價正好是一組拉鋸。下面這個元件讓你親手拉:

›拖動 h 看鄰域平均如何在「抖」與「偏」之間擺盪。
鄰域寬度 h0.80
目標位置 x₀4.0
概念示意
怎麼玩這個元件 講義 02
綠虛線是真實的 f(跟上一節同一條),灰點是 200 筆觀測。 紫線是你要預測的位置 x₀,黃帶是鄰域 |X − x₀| ≤ h,帶子裡的點會亮起來。 橘色橫線是鄰域內 y 的平均,也就是 f̂(x₀)。
先把 h 拉到最小:鄰域裡只剩兩三個點,橘線會抖得很厲害——這是變異。 再把 h 拉到最大:點很多、橘線很穩,但它開始明顯偏離綠虛線——這是偏差, 因為鄰域一大,裡面的 f 就不再近似常數了。
目前這個鄰域
鄰域寬度 h0.80
鄰域內的點數 m—
鄰域平均 f̂(x₀)—
真值 f(x₀)—
差距 |f̂ − f|—
平均值的標準誤 σ/√m—
為什麼這正是後面偏差–變異的伏筆
h 小 → m 小 → σ/√m 大 → 變異大。
h 大 → 鄰域裡的 f 不再是常數 → 偏差大。
沒有哪個 h 能同時把兩邊壓下去,只能挑一個折衷點。 這門課後面所有「選 K、選 df、選 λ」的動作,都是同一場拉鋸的不同外衣。

最近鄰平均能用的前提是「鄰域夠小,小到裡面的 $f$ 幾乎是常數; 同時鄰域裡又有夠多的點,多到平均值不抖」。一維的時候這兩件事很容易同時成立。 下一節要說的是:維度提高後,要同時做到這兩點通常需要更多資料。

QUIZ · 理想的 f

有人說:「既然 f(x) = E(Y | X = x) 是最好的預測,那我把它算出來,預測誤差就是 0 了。」這句話錯在哪裡?

(A) 最小的條件均方誤差是 Var(Y | X = x),不是 0;f 只是把可縮減的那一塊清成 0
(B) 錯在 E(Y | X = x) 其實不是最好的預測,中位數才是
(C) 錯在只有 X 是離散變數時 E(Y | X = x) 才存在
PART 03 · 維度詛咒

為什麼高維空間裡「最近的鄰居」一點都不近 進階參考 · 第 2.5 節講義 02

維度增加後,資料會更難在每個方向上都靠得很近。為了湊到足夠的鄰居,往往需要擴大鄰域;鄰域太大時,就不能期待裡面的 f 幾乎不變。

實際表現還取決於資料量、有效維度、分布及 f 的形狀。更多同類資料可能讓我們用較小比例的鄰域估計;因此要共同選擇鄰居數或寬度,不能只看「樣本數很多」就認為局部估計一定可靠。

QUIZ · 維度詛咒

資料有許多預測變數。使用 KNN 時,為什麼不能只因為樣本數很多,就直接認定「最近鄰」一定夠局部?

(A) 只要超過四個變數,KNN 就必定不能使用
(B) 高維時,湊到足夠鄰居可能需要較寬的範圍;還要評估有效維度、鄰居數與資料分布
(C) KNN 只能分類,不能用來迴歸
計算細節:高維球體、球殼與鄰域半徑

那麼問題變成:在 $p$ 維的單位超立方體裡,要圈到 10% 的體積, 每個座標軸上得吃掉多長?答案很短:

$$e_p(r) = r^{1/p}, \qquad e_p(0.1) = 0.1^{1/p}$$
維度 p1235102050
每個軸要覆蓋的比例 $0.1^{1/p}$10.0%31.6%46.4%63.1%79.4%89.1%95.5%

$p = 10$ 的時候,這個所謂的「鄰域」在每一個座標軸上都得覆蓋 79% 的範圍。 它已經不是鄰域,是整個空間的縮小版。 「局部」這兩個字消失了——而局部正是我們用它來近似 $E[Y \mid X = x]$ 的唯一理由。 講義最後一行寫得很直接:在高維空間裡,一個 10% 的鄰域已經不再算是局部的, 於是我們就失去了「用局部平均去估 $E(Y \mid X = x)$」的本意。

講義換一個角度說同一件事,而且更震撼: 高維空間的體積幾乎全部躲在角落。 拿一個邊長 2 的超立方體,塞進它的內接球(半徑 $R = 1$,剛好碰到每一面)。 $p$ 維球的體積有閉式解:

$$V_{\text{ball}}(R) = \frac{\pi^{p/2}}{\Gamma\!\left(\frac{p}{2} + 1\right)} R^{p}, \qquad V_{\text{cube}} = 2^{p}$$ $$r = \frac{V_{\text{ball}}}{V_{\text{cube}}} = \frac{\pi^{p/2}}{2^{p}\,\Gamma\!\left(\frac{p}{2} + 1\right)}\, R^{p}$$

講義把前六維逐項列出來,值得逐格看一次:

$p$123456
(a) 半徑 $R$ 的球體積$2R$$\pi R^2$$\frac{4}{3}\pi R^3$$\frac{\pi^2}{2} R^4$$\frac{8\pi^2}{15} R^5$$\frac{\pi^3}{6} R^6$
(b) 超立方體體積 $2^p$248163264
$r = (a)/(b)$$R$$\frac{\pi R^2}{4}$$\frac{\pi R^3}{6}$$\frac{\pi^2 R^4}{32}$$\frac{\pi^2 R^5}{60}$$\frac{\pi^3 R^6}{384}$

把 $R = 1$(剛好內接)代進去,$r$ 就是「內接球佔整個立方體的比例」: $p = 1$ 是 100%、$p = 2$ 是 78.5%、$p = 3$ 是 52.4%、$p = 4$ 只剩 30.8%、 $p = 6$ 剩 8.1%、$p = 10$ 剩 0.25%、 $p = 20$ 剩 $2.5 \times 10^{-6}\%$(比例 $2.5 \times 10^{-8}$)。 換句話說,十維立方體裡有 99.75% 的體積落在內接球之外—— 也就是靠近各個角落的那些區域。 你以為自己站在中間,其實資料都在你摸不到的邊邊。

反過來問更有感:如果我就是要圈到超立方體的 10% 體積,球的半徑要多大? 把上面的式子解出 $R$(講義):

$$R = \frac{2}{\sqrt{\pi}}\left[\,r\,\Gamma\!\left(\frac{p}{2} + 1\right)\right]^{1/p}, \qquad \Gamma\!\left(\frac{p}{2} + 1\right) \sim \sqrt{\pi p}\,\left(\frac{p}{2e}\right)^{p/2}$$

這條式子解的是「整顆球的體積等於立方體體積的 10%」。 $R > 1$ 之後球已經有一部分跑到立方體外面,真正落在立方體裡面的比例會略低於 10%, 所以它其實是「覆蓋 10% 所需半徑」的下界。講義用的是同一個簡化; 差距很小($p = 6$ 時實際覆蓋 9.9985%),不影響結論的方向。

右邊那個 $\Gamma$ 的 Stirling 近似說明了為什麼會炸: $\Gamma\!\left(\frac{p}{2}+1\right)$ 大致以 $(p/2e)^{p/2}$ 的速度成長, 開 $p$ 次方之後仍留下一個隨 $p$ 增大的 $\sqrt{p}$ 量級因子。代進去算: $p = 1$ 要 $R = 0.10$、$p = 3$ 要 0.58、$p = 6$ 就已經 1.04—— 超過內接球的半徑 1,球戳出立方體的面了;$p = 20$ 要 2.14, 是立方體半邊長的兩倍多。要「只看 10% 的鄰居」,你得把手伸出房間外面。

圖表需要連網載入 Chart.js;表格與公式仍可閱讀
›拖動 p,看紅色虛線圈什麼時候戳出立方體。
維度 p3
講義/課本重繪
怎麼玩這個元件 講義 02
左圖是一個邊長 2 的立方體剖面(灰框)與它的內接球(綠圈,半徑 1)。 紅色虛線圈是要圈到 10% 體積所需要的半徑。 拖 p 看它怎麼從綠圈裡面一路長到綠圈外面、甚至戳出灰框。
圖形是二維剖面示意,但右側每一個數字都是真正 p 維的值, 由講義的公式即時算出。
這個維度的實際數字
維度 p3
內接球佔立方體比例 r—
躲在角落的體積—
圈到 10% 體積所需半徑 R—
R 有沒有超出立方體的面—
每個軸要覆蓋的比例 0.1^(1/p)—
下面那張圖在說什麼
兩條線都對 p = 1…20 畫。綠線是內接球佔比 r, 它掉得比任何人的直覺都快;橘線是要圈到 10% 資料時每個軸得覆蓋的比例, 它爬得比任何人的直覺都快。兩條線在 p = 3 與 4 之間交叉。
注意這個交叉點是兩個不同幾何量的相遇,不是 KNN 適用維度的理論門檻; 講義的「p ≤ 4 才好用」是經驗準則。另外邊長那條線假設輸入均勻分布、 鄰域取等邊超立方體;一般的歐氏 KNN 用的是球形鄰域。

高維球的體積集中在哪裡?

在 p 維半徑 R 的球中均勻取點,距離中心不超過 $(1-\delta)R$ 的機率為 $(1-\delta)^p$。 所以外側厚度 $\delta R$ 的球殼占比是

$$P\{(1-\delta)R<\|X\|\le R\}=1-(1-\delta)^p,\qquad0\le\delta\le1.$$

例如外側 10% 厚度,在二維占 $1-0.9^2=19\%$,十維占約 65.1%,五十維占約 99.5%。 這是均勻球內取樣的結論;真實資料不一定均勻分布在球內,也不能直接套到任意核距離。 它補充了「內接球在立方體中占比很小」以外的另一個現象:即使只看球本身,靠近中心的體積比例也很小。

證明:球體積公式與球殼占比

令 Aₚ 為單位球面面積。高斯積分分別用直角座標與極座標計算:

$$\pi^{p/2}=\int_{\mathbb R^p}e^{-\|x\|^2}\,dx =A_p\int_0^\infty e^{-r^2}r^{p-1}\,dr=\frac{A_p}{2}\Gamma(p/2).$$

所以半徑 R 球體積為 $A_pR^p/p=\pi^{p/2}R^p/\Gamma(p/2+1)$。 球體積與半徑的 p 次方成正比,內球除以外球即為 $(1-\delta)^p$;取補集得到球殼比例。

來源:講義 02 指向的 Blum、Hopcroft、Kannan,Foundations of Data Science,§2.3–2.4.1,pp.16–19。 只延伸本節直接相關的高維幾何,不要求讀完整本書。

PART 04 · 參數式與非參數式

參數式與非參數式方法如何描述資料關係 教科書 · 第 2.1.2 節講義 02

知道要估 $f$ 了,接下來的分岔是:要不要先假設 f 的形狀? 兩條路各有代價。

參數式方法(parametric method)分兩步。第一步假設形狀, 最簡單的假設是線性:

$$f(X) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_p X_p$$

第二步用訓練資料估那 $p + 1$ 個係數(第 3 章的最小平方法)。 原本要估「一個任意的 $p$ 維函數」,做了線性假設後,只要估 $p+1$ 個數字。 代價是——函數形式假設錯誤會造成偏差。ISLP 圖 2.4 的黃色平面明顯漏掉了 真實 $f$ 的彎曲(圖 2.3 的藍色曲面)。

非參數式方法(non-parametric method)不預設固定維度的函數形式, 但仍要指定平滑、局部相似性、距離或尺度等結構。ISLP 圖 2.5 用薄板樣條 (thin-plate spline)擬合同一份 Income 資料,能呈現資料中的非線性關係。 但這個彈性也有代價:

非參數式的代價是資料量 因為沒把問題化簡成少數幾個參數, 非參數式方法需要遠比參數式方法更多的觀測值才估得準。 這跟上一節的維度詛咒是同一件事的兩種說法。
而且它還多出一個要你決定的東西:平滑程度。 ISLP 圖 2.6 把平滑程度放鬆,擬合出來的曲面通過每一個訓練點、 訓練誤差是 0——看起來完美,但它跟真實的 f(圖 2.3)差得很遠。 這就是過度擬合,也是下面兩節要量化的東西。
參數式(parametric)非參數式(non-parametric)
做法先假設 f 的固定形式,再估參數不固定函數形式,但指定平滑或局部結構
要估什麼有限個參數(β₀…βₚ)整個函數,沒有固定的參數個數
需要的資料量少多,而且隨 p 增加得非常快
結構假設錯的後果固定形式錯誤會造成高偏差距離、尺度或平滑假設錯也會造成偏差
額外要選的東西形狀(線性?加二次項?)平滑程度
ISLP 例子圖 2.4 的線性平面圖 2.5/2.6 的薄板樣條
本書章節第 3、4、6 章第 7(樣條、GAM)、8(樹)、9 章
QUIZ · 參數式與非參數式

你有 n = 60 筆資料、p = 12 個預測變數,而且懷疑關係不是線性的。直接使用一個很有彈性的非參數式方法,主要的風險是什麼?

(A) 非參數式方法沒有參數,所以沒辦法做預測
(B) 非參數式方法一定比參數式方法偏差大,所以在小樣本上更不準
(C) p = 12 而 n = 60,非參數式方法在這種維度下沒有足夠的鄰居可以平均,會擬合出一個變異極大的 f̂
PART 05 · 彈性與可解釋性

模型彈性、預測表現與可解釋性 教科書 · 第 2.1.3 節講義 02

把上一節的分岔攤開,其實是一條連續的光譜。一端是彈性低但看得懂, 另一端是彈性高但講不清楚。ISLP 圖 2.7 把本書的方法擺在這張圖上。

你可能會問:既然只要預測準,為什麼不永遠選最彈性的那個? ISLP 的回答很直接——彈性較低的方法有時反而預測更準。 原因是過度擬合,下一節就會用數字說清楚。

選擇低彈性方法的三個理由 1. 要做推論: 線性模型能直接回答「TV 廣告每多花一千元,銷售大約多幾單位」。 提升法給不出這種句子。
2. 樣本不夠:彈性高的方法需要足夠資料才能穩定估計,n 小的時候它的變異可能抵銷偏差降低的好處。
3. 真實的 f 本來就簡單:如果 f 真的接近線性,線性迴歸的偏差幾乎是 0, 彈性方法只會增加估計變異。這是 P05 情境 B 的畫面。
QUIZ · 彈性與可解釋性

下列哪一組方法在 ISLP 圖 2.7 上「彈性最低、可解釋性最高」?

(A) 最小平方線性迴歸
(B) 子集選擇與 lasso
(C) 廣義加法模型(GAM)與決策樹

訓練與測試都不理想時,先找哪一種原因?

先確認資料、損失定義與程式正確,再比較訓練及獨立驗證表現。訓練誤差也很高,可能是模型類太受限,也可能是最佳化尚未找到這個模型能達到的解。前者可考慮更合適的特徵或更有彈性的模型;後者先檢查最佳化過程,不能只靠加資料。

訓練誤差低而驗證誤差高,既可能是過度擬合,也可能是資料分布不一致(distribution mismatch):例如訓練資料來自成人,而預測對象換成兒童。前者可考慮減少彈性、正則化或取得更多同分布訓練資料;後者需要檢查來源、收集與預測情境。只看兩個誤差數字不能辨認原因,須配合資料設計、學習曲線與誤差分析。

這是講義連結的模型誤差診斷流程的閱讀方式;第二章的偏差–變異公式預設同一資料生成分布,不能自動解釋任意分布轉移。

PART 06 · 訓練與測試 MSE

用訓練 MSE 與測試 MSE 比較模型彈性 教科書 · 第 2.2.1 節講義 02

要比較方法,得先有量尺。迴歸問題最常用的是均方誤差(MSE):

$$\mathrm{MSE} = \frac{1}{n} \sum_{i=1}^{n} \left(y_i - \hat f(x_i)\right)^2$$

問題在於:這個平均是對哪一批資料算的? 如果用的是擬合時那批資料,它叫訓練 MSE; 如果用的是模型完全沒見過的資料,它叫測試 MSE。 兩者的行為完全不同,我們用後者評估新資料上的表現。

為什麼不能用訓練 MSE 當代理?因為大部分方法就是直接或間接在最小化它。 你拿一個「已經被最佳化過的目標值」當成公正的評分,當然會太樂觀。 極端一點:一條通過每一個訓練點的曲線,訓練 MSE 是 0—— 而這個 0 完全沒有告訴你它在新資料上會怎樣。

講義最後一行把這件事寫成一句斷言,值得把它證出來:

講義怎麼說 假設兩批資料都抽自同一個母體分布, 一個模型的測試誤差通常會高於它的訓練誤差。
兩批資料同分布是前提;而「通常」不是模糊其辭, 它精確地說明這是一個期望值的不等式。
證明:證明:$E[\text{訓練誤差}] \le E[\text{測試誤差}]$——前提是模型類事先固定,且 $\hat f$ 是它裡面訓練誤差最小的那一個

先把話說精確。「典型上比較高」講的是期望值, 不是「每一次都」。要證的是這一條:

$$E_{Tr}\left[\widehat{R}(\hat f)\right] \;\le\; E_{Tr}\left[R(\hat f)\right]$$

記號。訓練集 $Tr = \{(x_i, y_i)\}_{i=1}^{n}$ 是從母體分布 $P$ 獨立抽出來的。 對任何一個函數 $f$,定義

$$\widehat{R}(f) = \frac{1}{n}\sum_{i=1}^{n}\left(y_i - f(x_i)\right)^2 \quad\text{(訓練誤差)},\qquad R(f) = E_{(X, Y)\sim P}\left[(Y - f(X))^2\right] \quad\text{(測試誤差)}$$

模型類 $\mathcal{F}$ 事先固定、不依賴訓練資料, 而 $\hat f = \arg\min_{f \in \mathcal{F}} \widehat{R}(f)$—— 它是看過 $Tr$ 之後才在 $\mathcal{F}$ 裡挑出來的,這是整件事的關鍵。 (這兩個條件都要。「隨便一個看過資料才決定的 $\hat f$」不夠: $n = 1$、$Y$ 零均值變異 $\sigma^2$ 時,故意取 $\hat f \equiv -y_1$, 期望訓練誤差是 $4\sigma^2$、期望測試誤差是 $2\sigma^2$,不等號會反過來。) 再令 $f^{*} = \arg\min_{f \in \mathcal{F}} R(f)$ 是類裡真正最好的那一個 (它只由母體決定,跟 $Tr$ 無關)。

第 1 步:對固定的 $f$,訓練誤差是測試誤差的不偏估計。 只要 $f$ 不依賴 $Tr$,每一項的期望都是 $R(f)$:

$$E_{Tr}\left[\widehat{R}(f)\right] = \frac{1}{n}\sum_{i=1}^{n} E\left[(y_i - f(x_i))^2\right] = R(f)$$

注意這一步對 $\hat f$ 不成立,因為 $\hat f$ 是用 $y_i$ 挑出來的, 跟 $y_i$ 有相關。整個「訓練誤差太樂觀」就是從這裡漏出來的。

第 2 步:訓練誤差的期望不會超過類裡最好的風險。 $\hat f$ 是最小值,所以對每一個 $f \in \mathcal{F}$ 都有 $\widehat{R}(\hat f) \le \widehat{R}(f)$。兩邊取期望,再用第 1 步:

$$E_{Tr}\left[\widehat{R}(\hat f)\right] \;\le\; E_{Tr}\left[\widehat{R}(f)\right] = R(f) \qquad \text{對每個 } f \in \mathcal{F}$$

對右邊取下確界,得 $E_{Tr}[\widehat{R}(\hat f)] \le R(f^{*})$。 (這就是 $E[\min] \le \min[E]$:先看答案再挑,當然挑得比較低。)

第 3 步:測試誤差的期望不會低於類裡最好的風險。 $\hat f$ 本身也在 $\mathcal{F}$ 裡,所以不管抽到哪一份 $Tr$ 都有 $R(\hat f) \ge R(f^{*})$。取期望:

$$E_{Tr}\left[R(\hat f)\right] \;\ge\; R(f^{*})$$

合起來。把兩條夾在 $R(f^{*})$ 的兩側:

$$E_{Tr}\left[\widehat{R}(\hat f)\right] \;\le\; R(f^{*}) \;\le\; E_{Tr}\left[R(\hat f)\right] \qquad \blacksquare$$

「typically」到底在哪裡。上面證的是期望值的不等式, 有兩個地方會讓它在單一次實驗裡看起來不成立:
1. 有限的測試集只是 $R(\hat f)$ 的一個估計,運氣好時可以低於訓練誤差。
2. 如果 $\hat f$ 不是用 $Tr$ 挑的(例如模型是別人給你的、參數也不重估), 第 1 步就對它成立,兩邊期望相等,不等式退化成等號。 差距完全來自「用同一批資料又挑模型又評分」。

差距有多大?在一個更受限的設定下可以算出來(ESL §7.4)。 把訓練輸入 $\mathbf{X}$ 固定住,只讓反應值隨機, 並把樂觀程度定義成「同樣那些 $x_i$ 上換一批新的 $y$」與訓練誤差的差:

$$\omega(\mathbf{X}) = E\left[R_{\text{in}}(\hat f) - \widehat{R}(\hat f) \;\middle|\; \mathbf{X}\right] = \frac{2}{n}\sum_{i=1}^{n}\mathrm{Cov}\left(\hat y_i,\, y_i \;\middle|\; \mathbf{X}\right)$$

擬合愈是「跟著 $y_i$ 跑」,這個共變異數就愈大。 條件在 $\mathbf{X}$ 上這件事不能省:不然一個完全不看資料的 $\hat y_i = f(x_i)$ 樂觀程度明明是 0,無條件的共變異數卻是 $\mathrm{Var}(f(X_i)) \neq 0$。

再多一個假設就有漂亮的閉式:若擬合是線性平滑器 $\hat{\mathbf{y}} = S\mathbf{y}$(給定 $\mathbf{X}$ 後 $S$ 固定), 且 $\mathrm{Cov}(\varepsilon \mid \mathbf{X}) = \sigma^2 I$,則

$$\omega(\mathbf{X}) = \frac{2\sigma^2}{n}\,\mathrm{tr}(S)$$

固定設計的普通最小平方法裡 $\mathrm{tr}(S) = \mathrm{rank}(\mathbf{X})$, 滿秩時就是含截距的參數個數 $d$,於是回到常見的 $\omega = 2 d \sigma^2 / n$: 參數愈多、樣本愈少,訓練誤差就愈樂觀。

兩個要提醒的地方:這是 in-sample 的樂觀程度($x_i$ 沒有換), 不是一般測試誤差差距的精確公式;而且 $d$ 要用 $\mathrm{tr}(S)$, 資料驅動地選變數、選節點之後不能再拿名目參數個數去代。 這條式子正是 第 6 章 $C_p$ 與 AIC 「罰一項與 $\mathrm{tr}(S)$ 成正比的量」的來源(BIC 的 $d\log n$ 是另一套推導)。 它也解釋了 1-最近鄰的極端情形:它把每個訓練點都完美記住,訓練誤差 0, 但測試誤差一點都不是 0。

›按三個按鈕切換彈性,看訓練 MSE 與測試 MSE 各自往哪裡走。
概念示意
怎麼看這兩張圖 ISLP 圖 2.9
上圖是同一組 50 個點(σ = 1)用三種彈性擬合的結果,綠色虛線是真實的 f。下圖是訓練 MSE(灰)與測試 MSE(紅)對彈性度的曲線,圓點標出上圖那三個選擇,紫色垂線是目前選的那一個。
目前的選擇
樣條自由度 df6
訓練 MSE—
測試 MSE—
Var(ε)(下限)1.00
彈性度是什麼
df = 擬合時估的參數個數。df = 2 就是線性迴歸(截距加斜率),df ≥ 5 是三次迴歸樣條,節點依固定順序一個一個加進去,所以模型空間是巢狀的,訓練 MSE 保證單調下降。

這組模型依序擴大且用同一訓練目標擬合,所以訓練 MSE 單調不增; 測試 MSE 常隨彈性先降後升,但最低點也可能落在端點。 當訓練 MSE 很小、測試 MSE 卻很大,我們就說發生了過度擬合(overfitting)。

過度擬合的嚴格定義 不是「訓練 MSE 比測試 MSE 小」。 那幾乎永遠成立,因為方法本來就在最小化訓練 MSE。
過度擬合指的是:存在一個比較不彈性的模型,它的測試 MSE 反而更小。 上圖裡 df = 25 是過度擬合(df = 6 更好),而 df = 6 不是。

期望值到底在平均什麼

期望值是依機率加權的平均;MSE 則是把平方誤差平均。 重點是對哪些隨機量取平均:只對新觀測值的誤差取平均,與連訓練資料也重抽後取平均, 是不同的問題。若需要複習加權平均的程式寫法,可看 附錄:流程控制中的 zip 與加權平均(課程 Lab Ch2 的迴圈範例)。

觀念釐清
Q:為什麼這裡的測試 MSE 呈 U 型?訓練 MSE 為什麼不是?

先講訓練 MSE。彈性愈高,模型能生出的函數集合愈大(本頁的樣條是巢狀的,df = 6 能擬合出的每一條曲線 df = 7 都能擬合出來)。既然在更大的集合裡找最小值,最小值只可能更小或一樣。所以訓練 MSE 單調不上升。這是純粹的最佳化事實,跟資料是什麼無關。

測試 MSE 就沒有這個保護,因為它衡量的是「在沒見過的點上」的表現。拆解式(下一節)說它等於偏差² + 變異 + $\mathrm{Var}(\varepsilon)$。彈性上升時偏差²下降、變異上升。一開始偏差²掉得比變異漲得快,所以總和往下;某個點之後偏差²已經幾乎為 0、沒東西可掉了,變異卻還在漲,總和於是往上。兩個反向的量相加,形狀就是 U。

要注意「U 型」講的是一般趨勢。真實 f 剛好接近線性時,偏差²從一開始就幾乎是 0,U 的左半邊等於不存在,圖看起來就是單調上升(下一節的情境 B)。所以嚴格的說法是:測試 MSE 的最低點可能落在任何位置,包含最左邊。

PART 07 · 偏差–變異拆解

把測試 MSE 拆成三塊:偏差²、變異、不可縮減誤差 教科書 · 第 2.2.2 節進階參考 · 第 7.3 節 · 進階

上一節看到了 U 型,這一節解釋它是怎麼長出來的。可以證明: 在某個測試點 $x_0$ 上,期望測試 MSE 一定能拆成三塊 (ISLP 式 2.7、ESL 式 7.9):

$$E\left(y_0 - \hat f(x_0)\right)^2 = \mathrm{Var}\!\left(\hat f(x_0)\right) + \left[\mathrm{Bias}\!\left(\hat f(x_0)\right)\right]^2 + \mathrm{Var}(\varepsilon)$$

三項都非負,所以期望測試 MSE 永遠不可能低於 $\mathrm{Var}(\varepsilon)$。 這條式子同時給了 U 型的機制與 P01 那條下限。三項各是什麼意思:

講義只寫了一行「這個拆解的證明」就跳過去了,這裡補完:

證明:證明:$E\left[(y_0 - \hat f(x_0))^2\right] = \mathrm{Var}(\hat f(x_0)) + \left[\mathrm{Bias}(\hat f(x_0))\right]^2 + \mathrm{Var}(\varepsilon)$

設定與記號。把測試點的位置 $x_0$ 固定住, 真實模型是 $Y = f(X) + \varepsilon$,其中 $f(x) = E[Y \mid X = x]$、 $E[\varepsilon \mid X] = 0$,並沿用本章的同變異假設 $\mathrm{Var}(\varepsilon \mid X) = \sigma^2$(允許異變異時, 下面的 $\mathrm{Var}(\varepsilon)$ 都要讀成 $\mathrm{Var}(Y \mid X = x_0)$)。測試觀測值是

$$y_0 = f(x_0) + \varepsilon_0$$

為了讀起來不擠,令 $f_0 = f(x_0)$、$\hat\mu = \hat f(x_0, Tr)$、 $m = E_{Tr}\left[\hat\mu\right]$。

這裡有兩層隨機,一定要分清楚:
1. 訓練集 $Tr$——每換一份訓練資料,$\hat\mu$ 就是另一個數字。
2. 測試點的雜訊 $\varepsilon_0$——它是新抽的,沒有參與訓練。
所以 $\varepsilon_0$ 與 $Tr$ 獨立,因而與 $\hat\mu$ 獨立。外面那個 $E$ 是對這兩層一起取的, 這正是講義那句「這個期望值同時把 $y_0$ 的變動與 $Tr$ 的變動都平均掉」的意思。 本頁 P01 那條推導是把 $\hat f$ 固定住的版本, 這裡把 $\hat f$ 的隨機性也放進來,所以可縮減的那一塊會再裂成兩塊。

第 1 步:把 $y_0$ 換掉、湊出 $\varepsilon_0$。

$$y_0 - \hat\mu = \left(f_0 + \varepsilon_0\right) - \hat\mu = \varepsilon_0 + \left(f_0 - \hat\mu\right)$$

第 2 步:平方展開、取期望。

$$E\left[(y_0 - \hat\mu)^2\right] = E\left[\varepsilon_0^2\right] + 2\,E\left[\varepsilon_0\left(f_0 - \hat\mu\right)\right] + E\left[\left(f_0 - \hat\mu\right)^2\right]$$

中間那一項因為獨立而可以拆開,再用 $E[\varepsilon_0] = 0$:

$$E\left[\varepsilon_0\left(f_0 - \hat\mu\right)\right] = E[\varepsilon_0]\;E\left[f_0 - \hat\mu\right] = 0$$

第一項則是 $E[\varepsilon_0^2] = \mathrm{Var}(\varepsilon) = \sigma^2$。 於是只剩下

$$E\left[(y_0 - \hat\mu)^2\right] = \mathrm{Var}(\varepsilon) + E\left[\left(\hat\mu - f_0\right)^2\right]$$

第 3 步:把剩下那一項再拆一次——一樣是加一項、減一項。 這次塞進去的是 $\hat\mu$ 自己的平均 $m$:

$$\hat\mu - f_0 = \underbrace{\left(\hat\mu - m\right)}_{\text{隨 } Tr \text{ 變動,期望 } 0} + \underbrace{\left(m - f_0\right)}_{\text{常數}}$$ $$E\left[\left(\hat\mu - f_0\right)^2\right] = E\left[\left(\hat\mu - m\right)^2\right] + 2\left(m - f_0\right)\underbrace{E\left[\hat\mu - m\right]}_{=\,0} + \left(m - f_0\right)^2$$

第 4 步:認出這兩塊是誰。

$$E\left[\left(\hat\mu - m\right)^2\right] = \mathrm{Var}_{Tr}\left(\hat f(x_0)\right), \qquad m - f_0 = E\left[\hat f(x_0)\right] - f(x_0) = \mathrm{Bias}\left(\hat f(x_0)\right)$$

合起來就是講義那一行:

$$E\left[\left(y_0 - \hat f(x_0)\right)^2\right] = \underbrace{\mathrm{Var}\!\left(\hat f(x_0)\right)}_{\text{換一份訓練資料會抖多少}} + \underbrace{\left[\mathrm{Bias}\!\left(\hat f(x_0)\right)\right]^2}_{\text{平均而言偏掉多少}} + \underbrace{\mathrm{Var}(\varepsilon)}_{\text{怎麼樣都在}} \qquad \blacksquare$$

三個立刻讀得出來的推論。
1. 三項都非負,所以期望測試 MSE 有下限 $\mathrm{Var}(\varepsilon)$, 跟 P01 得到的下限是同一件事。
2. 偏差與變異都是對 $Tr$ 取的統計量, 所以「這一次擬合的殘差有多大」跟它們是兩回事——要看它們得想像重抽很多份訓練集。
3. 彈性一升,$\mathrm{Var}(\hat f(x_0))$ 通常上去、 $\mathrm{Bias}$ 通常下來,兩者相加才有 U 型。沒有哪一邊可以單獨最佳化—— 這就是講義說的 bias-variance trade-off。

整條曲線的版本。上面只證了單一個 $x_0$。 把等式對測試點的分布再取一次期望(或在測試網格上平均), 左邊變成期望測試 MSE、右邊三項變成各自的平均,形式一模一樣。 下面那張圖畫的就是這個平均版本。

圖表需要連網載入 Chart.js。此圖的重點:偏差² 隨彈性下降、變異隨彈性上升,兩者相加再加上 Var(ε) 得到期望測試 MSE;最低點的位置隨真實 f 的形狀而變(情境 B 在 df = 2,情境 C 在 df = 18)。
›切換三個情境:真實 f 的形狀怎麼改變最佳彈性度。
概念示意
比較偏差與變異
同一種擬合方法用在不同的真實關係上,偏差的變化可能不同。切換圖形,觀察期望誤差的低點如何移動。
為什麼變異曲線相同
三個情境的變異曲線完全相同。因為對線性平滑器來說 Var(f̂) 只跟設計矩陣與 σ² 有關,跟真實的 f 一點關係都沒有。三張圖的差別百分之百來自偏差²。

ESL §7.3 也給出一個可直接計算的特例。對 KNN 迴歸, 在固定訓練輸入(因而鄰居的位置也固定)、雜訊零均值同變異且彼此獨立的條件下, 三項有封閉形式(ESL 式 7.10):

$$\mathrm{Err}(x_0) = \sigma_\varepsilon^2 + \left[f(x_0) - \frac{1}{k} \sum_{\ell=1}^{k} f(x_{(\ell)})\right]^2 + \frac{\sigma_\varepsilon^2}{k}$$

看第三項:在這個固定設計之下,變異就是 $\sigma_\varepsilon^2 / k$,$k$ 愈大愈小。 第二項是「$f(x_0)$ 與 $k$ 個鄰居上 $f$ 的平均」之差:$k$ 愈大鄰居愈遠, 這個差通常愈大(但不保證單調——$f$ 是直線而鄰居左右對稱時, 多收一個對面的鄰居反而可能把偏差抵消掉)。 一條式子把偏差–變異取捨寫得清清楚楚,也預告了本頁最後一節的 KNN。

觀念釐清
Q:偏差–變異拆解是在對「什麼」取期望值?

總測試誤差同時平均重複抽到的訓練集與測試點的新反應值。其中偏差與變異描述訓練集重抽造成的模型變動,Var(ε) 則來自新反應值的雜訊。

拆解式裡的 $\hat f(x_0)$ 是一個隨機變數:它的隨機性來自「你剛好抽到哪一組訓練資料」。$E[\hat f(x_0)]$ 是「想像重複蒐集無數份訓練資料、每份都擬合一次模型、把這些 $\hat f(x_0)$ 平均起來」。偏差是這個平均與真值 $f(x_0)$ 的差;變異是這些 $\hat f(x_0)$ 自己的散開程度。

所以下面兩句話是不同的意思,不要搞混:

  • 「這個模型的變異很大」:換一份訓練資料,擬合出來的模型會很不一樣。這是拆解式講的變異。
  • 「這個模型的預測值散得很開」:在不同的 $x$ 上預測值差很多。這只是說 $\hat f$ 這條曲線起伏大,跟拆解式的變異不是同一件事。

實務上的後果:你手上只有一份訓練資料,所以偏差與變異沒辦法分別算出來。上面那張圖能畫,是因為那是模擬,我們知道真實的 f,也能想抽幾組訓練集就抽幾組。真實資料上你只能估它們的總和(第 5 章的交叉驗證),然後靠這一節的直覺判斷該往哪邊調。

QUIZ · 偏差–變異拆解

維持相同的母體分佈與預測變數,只增加訓練樣本數。拆解式中哪一項確定不會因此改變?

(A) 偏差,因為只要模型類別不變,它就與樣本數無關
(B) 變異,因為增加資料沒有改變模型的彈性
(C) 不可縮減誤差 Var(ε),因為它由這組 X 下的母體雜訊決定
PART 08 · Bayes 分類器與 KNN

分類設定:Bayes 錯誤率與 KNN 的 K 如何影響預測 教科書 · 第 2.2.3 節講義 02

前面全都在講迴歸。搬到分類問題,觀念一個都不用丟,只要換掉量尺: 把 MSE 換成錯誤率(error rate)。

條件機率還不熟時,可先複習 S2 的條件機率與 Bayes 公式。

$$\text{訓練錯誤率} = \frac{1}{n} \sum_{i=1}^{n} I(y_i \neq \hat y_i), \qquad \text{測試錯誤率} = \mathrm{Ave}\left(I(y_0 \neq \hat y_0)\right)$$

$I(\cdot)$ 是指示變數:分錯是 1、分對是 0,所以這個式子就是「分錯的比例」。 跟迴歸一樣,我們在意的是測試錯誤率,而訓練錯誤率會系統性偏低。

Bayes 分類器:分類錯誤率的理論下限

先把「最佳」的框架講清楚,因為它跟迴歸是同一套。 PART 02 說「最好的預測是條件期望」時,前提是用平方誤差算帳; 換成絕對誤差,最佳解就變成條件中位數。也就是說,「什麼叫最好」永遠是 先挑一個損失函數 $L$,再在每一點上最小化條件期望損失:

$$a^{*}(x) = \arg\min_{a} E\left[L(Y, a) \mid X = x\right]$$

分類問題只是把損失換成 0–1 損失(分錯罰 1、分對罰 0), 因為這裡的量尺是錯誤率。同一個框架再跑一次,答案就從「條件期望」 變成「條件眾數」——把 $x_0$ 指派給條件機率最大的那個類別:

$$\text{把 } x_0 \text{ 指派給使 } \Pr(Y = j \mid X = x_0) \text{ 最大的 } j$$

這叫做 Bayes 分類器。兩類問題裡,它就是 「$\Pr(Y = 1 \mid X = x_0) > 0.5$ 就猜 1,否則猜 2」。 機率恰好等於 0.5 的那條線是 Bayes 決策邊界。 它達到的母體風險是所有分類器期望錯誤率的下限:

$$\text{Bayes 錯誤率} = 1 - E\left[\max_j \Pr(Y = j \mid X)\right]$$
用什麼量尺(損失函數)在每一點 $x$ 上的最佳預測本站哪裡講
平方誤差 $\left(Y - a\right)^2$條件期望 $E[Y \mid X = x]$PART 02(迴歸)
絕對誤差 $\left|Y - a\right|$條件中位數PART 02 證明的最後一段
0–1 損失 $I(Y \neq a)$條件眾數 $\arg\max_k \Pr(Y = k \mid X = x)$本節(分類)
「Bayes 分類器」的 Bayes,不是貝氏統計的那個 Bayes 這個名字來自 Bayes 決策理論(Bayes decision theory): 固定一個損失函數之後,期望損失的下限叫 Bayes 風險,達到它的規則叫 Bayes 規則。 用 0–1 損失時,Bayes 風險就是 Bayes 錯誤率。
它不需要你對未知參數指定貝氏先驗,也沒有做後驗更新。 (類別本身的邊際機率當然存在,它已經包含在母體的聯合分布裡了。) 式子裡出現的 $\Pr(Y = k \mid X = x)$ 只是「知道 $X$ 之後 $Y$ 的條件機率」, 分類文獻習慣叫它後驗機率(名字的由來),但整段推導從頭到尾只用到母體的聯合分布。 本站附錄的貝氏推論談的是對參數給先驗, 那是另一回事。
同一句話換個說法:迴歸的最佳解是條件期望,分類的最佳解是條件眾數, 兩者都是「先選量尺、再逐點最小化條件期望損失」這一套框架跑出來的答案。

講義只寫了一句「Bayes 分類器的(母體)錯誤率最小」, 這裡把它證出來,順便看它跟迴歸那條有多像:

證明:證明:在 0–1 損失之下,$C^{*}(x) = \arg\max_k \Pr(Y = k \mid X = x)$ 讓期望錯誤率最小

要證的事。令 $p_k(x) = \Pr(Y = k \mid X = x)$,$k = 1, \dots, K$。 對任意分類器 $C$(任何一個把 $x$ 對應到某個類別標籤的函數)都有

$$E\left[I\!\left(Y \neq C(X)\right)\right] \;\ge\; E\left[I\!\left(Y \neq C^{*}(X)\right)\right] = 1 - E\left[\max_k p_k(X)\right]$$

第 0 步:把整體錯誤率拆成逐點的問題。用全期望公式:

$$E\left[I\!\left(Y \neq C(X)\right)\right] = E_X\Big[\,E\left[I\!\left(Y \neq C(X)\right) \mid X\right]\Big]$$

跟 PART 02 完全一樣的招式:$X = x$ 固定之後,$C(x)$ 只是 $K$ 個標籤裡的一個, 不再是函數。所以「在所有分類器裡找最好的」可以拆成「在每一點各自從 $K$ 個標籤裡挑一個」。

第 1 步:算出固定 $x$ 的條件風險。 指示變數的期望就是機率,所以對任何一個候選標籤 $c$:

$$E\left[I(Y \neq c) \mid X = x\right] = \Pr\left(Y \neq c \mid X = x\right) = 1 - \Pr\left(Y = c \mid X = x\right) = 1 - p_c(x)$$

第 2 步:在這一點上挑最好的標籤。 要讓 $1 - p_c(x)$ 最小,就是要讓 $p_c(x)$ 最大:

$$\min_{c \in \{1, \dots, K\}} \left[1 - p_c(x)\right] = 1 - \max_k p_k(x), \qquad \text{在 } c = \arg\max_k p_k(x) \text{ 取到}$$

第 3 步:逐點最小推到全域最小。 上式對每一個 $x$ 分別成立,所以對任意 $C$ 都有 $E[I(Y \neq C(x)) \mid X = x] \ge 1 - \max_k p_k(x)$。兩邊對 $X$ 取期望:

$$E\left[I\!\left(Y \neq C(X)\right)\right] \;\ge\; E_X\left[1 - \max_k p_k(X)\right] = 1 - E\left[\max_k \Pr(Y = k \mid X)\right]$$

而 $C^{*}$ 在每一點都取到等號,所以這個下限確實達得到。$\blacksquare$

兩類的特例。$K = 2$ 時 $\max\left(p_1(x),\, 1 - p_1(x)\right)$, 所以在 $x$ 的條件錯誤率是 $\min\left(p_1(x),\, 1 - p_1(x)\right)$, 而 Bayes 規則就是「$p_1(x) > 0.5$ 猜 1」。條件錯誤率的最大值 0.5 只在 $p_1(x) = 0.5$ 那條線上取到——那正是 Bayes 決策邊界,也是最分不開的位置。

跟迴歸完全平行。把兩邊的結論並排看,會發現是同一件事的兩個外衣:

$$\min_{a} E\left[(Y - a)^2 \mid X = x\right] = \mathrm{Var}\left(Y \mid X = x\right), \qquad a^{*} = E[Y \mid X = x]$$ $$\min_{c} E\left[I(Y \neq c) \mid X = x\right] = 1 - \max_k p_k(x), \qquad c^{*} = \arg\max_k p_k(x)$$

兩邊都是「逐點最小 ⇒ 全域最小」,也都留下一個跟方法無關的下限: 迴歸留下 $\mathrm{Var}(\varepsilon)$,分類留下 Bayes 錯誤率。 後者大於 0 的理由也一模一樣——只要有一塊 $x$ 沒有任何類別的條件機率是 1, 也就是知道 $X$ 之後 $Y$ 仍有隨機性。

錯誤代價不一樣的時候。0–1 損失把所有錯誤看成一樣重。 如果把病人判成健康、跟把健康判成病人代價不同,就要換成一般的損失矩陣 $L(k, c)$, 第 1 步的條件風險變成 $\sum_k L(k, c)\, p_k(x)$,最佳規則跟著變成

$$c^{*}(x) = \arg\min_{c} \sum_{k=1}^{K} L(k, c)\, p_k(x)$$

框架沒有變,只是量尺換了——這也是第 4 章調整門檻與看 ROC 的出發點。

只要有一塊 $x$(機率為正)上沒有任何類別的條件機率是 1,它就大於 0—— 也就是兩類在母體裡本來就重疊。 Bayes 錯誤率就是分類問題版本的不可縮減誤差。 下面這個元件把「重疊」直接畫出來:

›拉開兩類的距離或縮小 σ,看 Bayes 錯誤率怎麼掉。
Δμ2.0
σ1.00
講義/課本重繪
怎麼玩這個元件 ISLP 式 2.11
兩個等權重的常態分佈代表兩個類別。第一個滑桿拉開它們的平均值差距,第二個滑桿改變共同的 σ。橘色陰影就是重疊的部分,面積的一半就是 Bayes 錯誤率。兩個先驗相等時決策邊界固定在中線(紫色虛線)。
即時數字
平均值差距 Δμ2.0
共同標準差 σ1.00
標準化距離 Δμ ⁄ σ—
Bayes 錯誤率—
最高可能正確率—
為什麼是 Φ(−Δμ ⁄ 2σ)
先驗相等、σ 相同時,邊界落在兩個平均值的中點。某一類被分錯的機率就是它落到中點另一邊的機率,也就是標準常態在 −Δμ ⁄ 2σ 以下的機率。Δμ = 0 時兩類完全重疊,錯誤率 0.500——此時任何分類器都只能瞎猜。

KNN:不知道真實機率時的替代方案

Bayes 分類器要求你知道 $\Pr(Y \mid X)$——真實資料上不可能。 K 最近鄰(K-nearest neighbors, KNN)用鄰近樣本的類別比例估計它: 找出離 $x_0$ 最近的 $K$ 個訓練點(記作 $\mathcal{N}_0$),數一數裡面各類佔幾成。

$$\widehat{\Pr}(Y = j \mid X = x_0) = \frac{1}{K} \sum_{i \in \mathcal{N}_0} I(y_i = j)$$

然後指派給比例最高的那一類。KNN 不預設固定維度的函數形式,但仍依賴距離、變數尺度, 以及「鄰近的 X 有相近條件分佈」這項局部假設。在這個基本元件裡,$K$ 是控制平滑程度的旋鈕: $1/K$ 可視為 KNN 的彈性度。

看到這裡應該會有一個疑問:PART 03 不是說最近鄰在高維會壞掉嗎? 講義把話補完了——會壞,但分類壞得比較慢:

講義怎麼說 最近鄰平均在分類上一樣可以照用。 它同樣會隨著維度增加而失效。 不過,它對 Ĉ(x) 的衝擊小於對 p̂k(x) 的衝擊。
也就是說:估「機率」會被維度詛咒打得很慘,估「哪一類」則相對耐打。 這不是安慰的話,可以寫成不等式。
證明:講義:對 $\hat C(x)$ 的衝擊小於對 $\hat p_k(x)$——這句話怎麼算出來

直覺先講。分類最後只用到誰最大, 不是大多少。$\arg\max$ 把一整組機率壓成一個標籤, 是比機率本身粗糙得多的資訊。 只要估計誤差沒有大到把排名弄反,決策就跟用真實機率時一模一樣。

兩類情形可以寫成等式。令 $\eta(x) = \Pr(Y = 1 \mid X = x)$, $C^{*}$ 是 Bayes 規則、$\hat C$ 是你手上那個插入式(plug-in)分類器 $\hat C(x) = I\!\left(\hat\eta(x) > 0.5\right)$。把 BAYES 那條證明的第 1 步逐點展開再相減:

$$R(\hat C) - R(C^{*}) = E\Big[\left|2\eta(X) - 1\right| \cdot I\!\left(\hat C(X) \neq C^{*}(X)\right)\Big]$$

這條式子有兩個很強的讀法:
1. 右邊有一個指示函數——只有在你猜錯邊的那些 $x$ 上才付代價。 $\hat\eta$ 估成 0.9 而真值是 0.6?只要兩個都在 0.5 的同一側,超額風險是 0。
2. 付的代價還被 $\left|2\eta(x) - 1\right|$ 加權。 愈靠近決策邊界($\eta \approx 0.5$)猜錯,罰得愈輕; 而那裡剛好就是最容易猜錯的地方。兩個效應互相抵消。

由此得到一條乾淨的界。在 $\hat C \neq C^{*}$ 的地方, $\hat\eta$ 與 $\eta$ 一定落在 0.5 的兩側,所以 $\left|\eta - 0.5\right| \le \left|\hat\eta - \eta\right|$,代進去:

$$R(\hat C) - R(C^{*}) \;\le\; 2\,E\left|\hat\eta(X) - \eta(X)\right|$$

這條界是單向的,而單向正是重點。 機率估得準 $\Rightarrow$ 分類一定準; 但反過來完全不成立——機率可以估得一塌糊塗,分類卻幾乎沒有損失。 這就是講義那句「對 $\hat C(x)$ 的衝擊小於對 $\hat p_k(x)$」的數學內容。

但不要過度樂觀。講義用的字是「一樣會隨著維度增加而失效」—— 分類還是會壞掉,只是慢一點:
「排名弄反」的那一層薄殼繞在決策邊界附近。維度一高、鄰域不再局部, $\hat\eta$ 的誤差變大,這層殼就跟著變厚。
如果你真正要的是機率本身——風險分數、期望損失、 調整門檻、畫 ROC——那就沒有這層保護,$\hat p_k$ 的誤差會原封不動傳下去。 什麼時候需要機率、什麼時候只需要標籤,是第 4 章的主題。

›切換 K,看決策區域與 Bayes 邊界(紫色虛線)差多少。
概念示意
怎麼看這張圖 ISLP 圖 2.15–2.16
底色是 KNN 的決策區域(30 × 30 格點,各自問一次 KNN 要猜哪一類),紫色虛線是真實的 Bayes 決策邊界,圓點是 200 筆訓練資料。按鈕切換 K,看區域從破碎變成平滑。
這個 K 的表現
K10
彈性度 1 ⁄ K0.100
訓練錯誤率—
測試錯誤率(5000 筆)—
Bayes 錯誤率(母體值的估計)0.1382
三個 K 的結果
K = 1:訓練錯誤率 0.000,測試 0.1964。邊界破碎,抓到的是雜訊——低偏差、極高變異。
K = 10:測試 0.1470,最接近 Bayes 錯誤率。
K = 100:測試 0.1758。邊界過度平滑、快變成直線——高偏差、低變異。
Bayes 錯誤率算不出來,那講它有什麼用 1. 它給出母體期望錯誤率的理論下限。 經重複評估得到的分類風險已逼近估計的 Bayes 錯誤率時,可優先考慮蒐集新變數, 跟 P01 那個「測試 MSE 逼近 Var(ε)」的判斷完全平行。
2. 它提供模擬研究的比較基準。在已知真實分佈的模擬資料上它算得出來, 這時「離下限多遠」比「錯誤率多少」有意義得多,上面那個元件就是這樣用的。
3. 它提供先估機率、再決定標籤的做法。 Bayes 分類器的形式是「比較條件機率的大小」,所以第 4 章的邏輯斯迴歸、LDA、Naive Bayes 全都在做同一件事:各用不同的假設去估那個條件機率,再套上同一個「取最大」的規則。

KNN 元件已經同時列出 K = 1、10、100 的訓練與獨立測試錯誤,足以看見 「訓練誤差偏好高彈性、測試誤差不一定」的差異。

觀念釐清
Q:本頁 KNN 的 K = 1 為什麼訓練錯誤率是 0,這代表它很好嗎?

K = 1 時,要預測訓練點 $x_i$ 的類別,KNN 會去找「離 $x_i$ 最近的 1 個訓練點」——而那個點就是 $x_i$ 自己,距離 0。本頁資料沒有重複的 X,實作也把自己算進鄰居,所以它回報自己的標籤,訓練錯誤率為 0。若相同 X 出現相反標籤,或評分時排除自己,就沒有這項保證。

這個 0 本身不能證明過度擬合;還要和較不彈性模型的新資料表現比較。它也不能提供泛化表現的證據,因為使用的是擬合時那批資料。跟迴歸那邊「通過每一個點的曲線訓練 MSE = 0」是同一種評估問題。本頁的模擬裡,K = 1 的測試錯誤率是 0.1964,是所有 K 之中最差的幾個之一,而 Bayes 下限只有 0.1382。

那 K = 1 有什麼用?它是彈性的極端:偏差極低(決策邊界可以任意扭曲)、變異極高(換一份訓練資料邊界就整個變樣)。資料量非常大、雜訊非常小的時候,K = 1 是可以贏的。ISLP 第 4 章與第 9 章會再回到這個取捨。

QUIZ · Bayes 分類器與 KNN

在一份二維兩類資料上,你發現 K = 1 的測試錯誤率比 K = 25 高很多。最合理的解讀是什麼?

(A) K = 1 的訓練錯誤率是 0,所以它一定過度擬合;K 愈大一定愈好
(B) K = 1 太有彈性,決策邊界抓到了訓練資料的雜訊;K = 25 平滑掉雜訊後更接近真實邊界
(C) 這表示資料的 Bayes 錯誤率很高,換任何 K 都沒有用
計算細節:KNN 迴歸的有效自由度

KNN 的彈性與有效自由度

對固定的訓練輸入,KNN 迴歸把鄰居的 y 平均,可寫成 $\hat y=Sy$。鄰域只由 X 決定、每點使用 K 個等權鄰居且包含自己時,線性平滑器的有效自由度為 $\operatorname{tr}(S)=n/K$。K 越小,模型保留越多訓練反應的個別變動。這個等式使用線性迴歸平滑器的定義;分類的多數決含非線性門檻,不能直接照搬。

距離同分須固定處理方式;若不含自身,不能再使用上述對角線計算。

證明:固定鄰域 KNN 迴歸的 n/K

令 $S_{ij}=I\{j\in N_K(i)\}/K$,便有 $\hat y_i=\sum_jS_{ij}y_j$。自點包含於鄰域使 $S_{ii}=1/K$,故 $\operatorname{tr}(S)=\sum_iS_{ii}=n/K$。

若給定 X 後 $\operatorname{Cov}(y)=\sigma^2I$,則 $\operatorname{Cov}(\hat y_i,y_i)=\sigma^2S_{ii}$。用 $\sum_i\operatorname{Cov}(\hat y_i,y_i)/\sigma^2$ 定義自由度也得到相同結果。

EXERCISES · 練習

動手驗證:教科書第 2 章精選題 教科書 · 第 2.4 節 習題

下面幾題取自 ISLP §2.4 的課後習題,題號都對得回課本。先自己想過再點選項; 每個選項都有解說;需要完整解答時,可查閱下面3個站。

EXERCISE 1 · ISLP 2.4 第 1 題(b)(d)

第 1 題問「彈性方法會比不彈性方法好還是差」。考慮 (b) p 極大而 n 很小,以及 (d) 誤差項的變異 σ² = Var(ε) 極大。這兩種情況呢?

(A) (b) 較差、(d) 較好,因為雜訊大的時候更需要彈性去捕捉細節
(B) 兩種情況都比較好,因為彈性方法適用範圍更廣
(C) 兩種情況都比較差:(b) 資料不夠支撐彈性方法,(d) 彈性方法會去擬合雜訊
EXERCISE 2 · ISLP 2.4 第 2 題(a)

第 2 題 (a):蒐集美國前 500 大公司的資料,每家記錄「利潤、員工數、產業、CEO 薪水」,想了解哪些因素影響 CEO 薪水。這是什麼問題、n 與 p 是多少?

(A) 迴歸問題、目的是推論,n = 500、p = 3
(B) 分類問題、目的是預測,n = 500、p = 4
(C) 迴歸問題、目的是預測,n = 500、p = 3
EXERCISE 3 · ISLP 2.4 第 3 題(a)(b)

第 3 題要你在同一張圖上畫五條曲線(偏差²、變異、訓練誤差、測試誤差、Bayes/不可縮減誤差),橫軸是彈性。哪一組形狀是對的?

(A) 偏差²與變異都單調下降,訓練誤差與測試誤差都是 U 型
(B) 偏差²單調下降、變異單調上升、訓練誤差單調下降、測試誤差 U 型、不可縮減誤差是一條水平線
(C) 訓練誤差與測試誤差最後會收斂到同一條線,因為彈性夠高就能學到真實的 f
EXERCISE 4 · ISLP 2.4 第 7 題(b)(c)

第 7 題給了六筆資料(X₁, X₂, X₃, Y):(0,3,0,紅)、(2,0,0,紅)、(0,1,3,紅)、(0,1,2,綠)、(−1,0,1,綠)、(1,1,1,紅)。要在測試點 X₁ = X₂ = X₃ = 0 上用 KNN 預測。K = 1 與 K = 3 分別預測什麼?

(A) K = 1 預測綠,K = 3 預測紅
(B) K = 1 預測紅,K = 3 預測紅
(C) K = 1 預測綠,K = 3 預測綠
重點速查與來源

統計學習的基本框架速查表 教科書 · 第 2 章

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

本頁書目與章節定位

  • 教科書:An Introduction to Statistical Learning with Applications in Python。James、Witten、Hastie、Tibshirani、Taylor,2023。原書與下載資訊
    本頁對應:教科書 · 第 2.1 節;教科書 · 第 2.1.1 節;教科書 · 第 2.1.2 節;教科書 · 第 2.1.3 節;教科書 · 第 2.2.1 節;教科書 · 第 2.2.2 節;教科書 · 第 2.2.3 節。
  • 進階參考:The Elements of Statistical Learning。Hastie、Tibshirani、Friedman,第二版。原書與下載資訊
    本頁對應:進階參考 · 第 2.5 節;進階參考 · 第 7.3 節 · 進階。

考前把這一頁掃過去就好。

迴歸與分類:同一套邏輯的兩種語言

迴歸(regression)分類(classification)
Y 是什麼數值類別
量尺MSE $= \frac1n\sum (y_i - \hat f(x_i))^2$錯誤率 $= \frac1n\sum I(y_i \ne \hat y_i)$
最好的預測函數迴歸函數 $f(x) = E[Y \mid X = x]$Bayes 分類器(取條件機率最大者)
期望風險的理論下限$\mathrm{Var}(\varepsilon)$(不可縮減誤差)Bayes 錯誤率
訓練版的問題用擬合資料自評會偏樂觀用擬合資料自評會偏樂觀(本例 K = 1 時是 0)
彈性度的例子樣條自由度 df、多項式次數KNN 的 $1/K$

參數式與非參數式

參數式非參數式
固定函數形式先指定不預先固定
仍需的結構線性等形式平滑、局部相似性、距離或尺度
要估的東西有限個參數整個函數
主要風險形狀假設錯 → 高偏差資料不夠 → 高變異
額外要選形狀平滑程度
高維表現相對穩健容易受維度詛咒影響
ISLP 例子圖 2.4 線性平面(第 3 章)圖 2.5/2.6 薄板樣條(第 7 章)
計算細節:完整公式速查

公式速查

名稱式子備註
基本框架$Y = f(X) + \varepsilon$式 2.1,$E[\varepsilon\mid X] = 0$
迴歸函數$f(x) = E[Y \mid X = x]$平方誤差下最好的預測函數
兩種誤差$E(Y-\hat Y)^2 = [f(X)-\hat f(X)]^2 + \mathrm{Var}(\varepsilon)$式 2.3,$\hat f$ 與 $X$ 固定
線性模型$f(X) = \beta_0 + \beta_1 X_1 + \cdots + \beta_p X_p$式 2.4,參數式的代表
MSE$\frac1n\sum_{i=1}^{n}(y_i - \hat f(x_i))^2$式 2.5
偏差–變異拆解$E(y_0-\hat f(x_0))^2 = \mathrm{Var}(\hat f(x_0)) + [\mathrm{Bias}(\hat f(x_0))]^2 + \mathrm{Var}(\varepsilon)$式 2.7;ESL 式 7.9 同
KNN 迴歸的拆解$\sigma_\varepsilon^2 + [f(x_0) - \frac1k\sum_\ell f(x_{(\ell)})]^2 + \frac{\sigma_\varepsilon^2}{k}$ESL 式 7.10,變異就是 $\sigma^2/k$
錯誤率$\frac1n\sum_{i=1}^{n} I(y_i \ne \hat y_i)$式 2.8/2.9
Bayes 分類器取使 $\Pr(Y=j \mid X=x_0)$ 最大的 $j$式 2.10
Bayes 錯誤率$1 - E[\max_j \Pr(Y=j \mid X)]$式 2.11,分類版的不可縮減誤差
KNN 機率估計$\frac1K\sum_{i \in \mathcal{N}_0} I(y_i = j)$式 2.12;本頁以 $1/K$ 表示相對彈性
三個一定要記住的觀念 1. 期望測試 MSE 不低於 Var(ε)。 拆解式的三項都非負;分類版則是母體期望錯誤率不低於 Bayes 錯誤率。 有限測試集的估計值會波動,不能把母體下限當成每次觀察值的硬界線。
2. 巢狀模型的訓練目標單調不增,測試誤差常呈 U 型。 前者來自模型空間擴大;後者是一般趨勢,最低點可能在端點。本例 K = 1 的訓練錯誤率為 0, 仍須比較新資料表現才能判定過度擬合。
3. 偏差與變異的期望是對「重複抽訓練集」取的。 變異是「換一份訓練資料,f̂ 會變多少」,不是「f̂ 這條曲線起伏多大」。 真實資料上、不知道真實 f 時,通常沒辦法把兩者分開算出來; 特定模型假設或重抽樣之下可以估其中一部分,而第 5 章的交叉驗證估的是整體預測風險。
CARDS · 關鍵詞彙卡

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

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

複習:展開關鍵詞彙卡