歡迎來到留一法交叉驗證 (Leave-One-Out Cross-Validation, LOOCV)!

你好!如果你正在為 SRM 考試努力,你一定已經知道,我們不能只看模型在訓練數據上的表現。我們需要知道它在未見過的數據上的表現如何。在前一節中,我們介紹了「驗證集法」(Validation Set Approach)。今天,我們要來認識它更精密、更成熟的「兄弟」:留一法交叉驗證 (LOOCV)

如果這聽起來有點數學味,別擔心!讀完這些筆記後,你會發現 LOOCV 其實是一種非常公平、徹底的「測試」模型的方法。讓我們開始吧!

什麼是 LOOCV?

想像一下你有一個 20 人的班級,你想看看老師預測學生分數的能力。在 LOOCV 中,你會:
1. 讓一位學生先離開教室。
2. 讓老師根據剩下的 19 位學生進行「學習」。
3. 請老師預測剛剛離開的那位學生的分數。
4. 重複這個過程 20 次,每次都挑選一位不同的學生離開。
5. 將老師在 20 次預測中的誤差進行平均。

用統計學的術語來說,如果我們總共有 \( n \) 個觀測值,我們使用 \( n-1 \) 個觀測值來訓練模型,並用 1 個觀測值來驗證(測試)它。我們將這個過程重複 \( n \) 次。

分步過程

1. 我們將第一個觀測值 \( (x_1, y_1) \) 作為驗證集。
2. 使用剩下的 \( n-1 \) 個觀測值來擬合模型。
3. 預測 \( x_1 \) 的值並計算誤差: \( MSE_1 = (y_1 - \hat{y}_1)^2 \)。
4. 對第二個、第三個,一直到第 \( n \) 個觀測值重複上述步驟。
5. 最後,將所有這些個別的誤差平均起來,得到我們的 LOOCV 估計值:

\( CV_{(n)} = \frac{1}{n} \sum_{i=1}^{n} MSE_i \)

快速回顧:
- 訓練集大小: \( n-1 \)
- 驗證集大小: 1
- 迭代次數: \( n \)

為什麼 LOOCV 比驗證集法更好?

你可能還記得,驗證集法(將數據 50/50 分割)有兩個大缺點,而 LOOCV 正好解決了這兩點!

1. 沒有隨機性: 在驗證集法中,結果會根據哪些數據進入訓練集或測試集而改變。但在 LOOCV 中,沒有隨機性。如果你對同一組數據運行兩次 LOOCV,你會得到完全相同的答案,因為每一個觀測值都恰好有一次機會成為驗證點。

2. 偏差較小 (Less Bias): 在驗證集法中,我們只用了一半的數據來訓練模型。模型通常在數據較少時表現較差,這意味著驗證集法傾向於高估測試誤差率(這顯得比較「悲觀」)。由於 LOOCV 使用了幾乎所有的數據(\( n-1 \) 個點)來訓練,它提供的誤差估計會更準確(偏差更小)。

線性模型的「魔法」捷徑

你可能會想:「等等,如果我有 10,000 個觀測值,難道我真的要擬合模型 10,000 次嗎?那豈不是要花掉一輩子!」

你說得對!對於大多數模型來說,LOOCV 的運算成本非常高。然而,對於最小平方法線性迴歸或多項式迴歸,有一個「魔法」公式,讓你只需擬合一次模型,就能計算出 LOOCV 誤差!

\( CV_{(n)} = \frac{1}{n} \sum_{i=1}^{n} \left( \frac{y_i - \hat{y}_i}{1 - h_i} \right)^2 \)

在這個公式中, \( \hat{y}_i \) 是由原始模型(利用*所有*數據擬合)得出的預測值,而 \( h_i \) 是槓桿率 (leverage) 統計量。槓桿率 \( h_i \) 告訴我們一個觀測值對其自身的擬合有多大的影響。槓桿率高的觀測值會將擬合線「拉向」自己。

重點提示: 這個捷徑讓線性迴歸中的 LOOCV 變得跟擬合單一模型一樣快!

LOOCV 的優點與缺點

統計學中的每種方法都有權衡。以下是 LOOCV 的「好」與「壞」:

優點:
- 低偏差: 由於我們使用幾乎整個數據集進行訓練,模型不會因為數據不足而表現失準。
- 穩定性: 無論你運行多少次,結果都相同(沒有隨機分割的運氣成份)。

缺點:
- 高運算成本: 除非你使用線性迴歸的捷徑,否則擬合 \( n \) 次模型是非常慢的。
- 高變異數 (High Variance): 這點比較複雜!因為我們訓練的 \( n \) 個模型幾乎完全相同(它們共享 \( n-2 \) 個觀測值),所以它們的輸出是高度相關 (correlated) 的。當我們對高度相關的數值進行平均時,其結果的變異數比平均那些相關性較低的數值要來得。(我們將在下一章將此與 K-fold 交叉驗證進行比較)。

你知道嗎? 在此背景下,高變異數意味著如果我們使用稍微不同的起始數據集,我們的 LOOCV 誤差估計可能會比 K-fold 估計產生更顯著的變動。

避免常見錯誤

錯誤 1:忘記捷徑僅適用於線性模型。 如果你使用的是複雜的方法,例如決策樹或支持向量機,你不能使用 \( h_i \) 公式。你必須實實在在地運行模型 \( n \) 次。

錯誤 2:認為 LOOCV 永遠是「最好」的方法。 雖然它偏差較小,但高變異數和高運算成本使得 10-fold 交叉驗證在實際應用中通常是更好的選擇。把 LOOCV 留在你的工具箱裡,專門用在小數據集上吧!

LOOCV 總結

1. 定義: K-fold 交叉驗證的特殊情況,其中 \( K = n \)。
2. 程序: 用 \( n-1 \) 個點訓練,用 1 個點測試,重複 \( n \) 次,然後取平均值。
3. 優點 1: 相比驗證集法,偏差更低。
4. 優點 2: 確定性(分割過程中沒有隨機運氣)。
5. 缺點: 計算可能很慢,且相較於 K-fold CV 具有更高的變異數。
6. 特殊公式: 對於線性迴歸,利用槓桿率 (\( h_i \)) 捷徑可以節省時間。

做得好!你已經掌握了留一法交叉驗證的概念。接下來,我們將看看如何透過 K-fold 交叉驗證,在驗證集法與 LOOCV 之間找到一個平衡點。繼續加油,你做得非常棒!