留一交叉驗證 是什麼?

LOOCV:留一交叉驗證 的完整解釋

留一交叉驗證(Leave-One-Out Cross-Validation, LOOCV)是 K 折交叉驗證的特例,每次將一個樣本作為驗證集,其餘所有樣本作為訓練集,重複執行 N 次(N 為樣本數),

核心概念

留一交叉驗證(Leave-One-Out Cross-Validation, LOOCV)是模型評估中最嚴格的交叉驗證形式。對於一個含 N 個樣本的資料集,LOOCV 執行以下流程:

  1. 對每個樣本 i(i = 1, 2, ..., N):
    • 訓練集 = 所有樣本排除第 i 個,共 N-1 個樣本
    • 驗證集 = 只有第 i 個樣本
    • 訓練模型,記錄對第 i 個樣本的預測結果
  2. 對所有 N 次的預測結果計算整體效能指標

LOOCV 是 K 折交叉驗證(K-Fold CV)在 K = N 時的特例。

運作原理

偏誤-方差分析

LOOCV 的統計特性由偏誤與方差的取捨決定:

  • 低偏誤(Low Bias):每次訓練集有 N-1 個樣本,幾乎等同於用全部資料訓練,因此對真實模型效能的估計偏誤很小。
  • 高方差(High Variance):N 次的訓練集高度重疊(僅差一個樣本),導致各次預測結果高度相關,整體效能估計的方差反而比 5-Fold 或 10-Fold 更大。

這個反直覺的性質在 Hastie 等人的《統計學習基礎》中有嚴格證明:5-Fold 或 10-Fold CV 在方差上通常優於 LOOCV,而偏誤僅略高一些,因此 10-Fold CV 在大多數情況下是更好的選擇。

計算成本

一般 K-Fold CV 需訓練 K 個模型,而 LOOCV 需訓練 N 個模型。對於 N = 10,000 的資料集,若選 K = 10,LOOCV 的計算量是 10-Fold 的 1,000 倍。

部分模型提供 LOOCV 的解析解,無需真正訓練 N 個模型:

  • 線性迴歸:可透過帽子矩陣(Hat Matrix)一次計算所有 LOOCV 預測值,時間複雜度與訓練一次模型相同。
  • Ridge 迴歸(L2 正則化):同樣具備 LOOCV 的高效解析解。

這使得線性模型的 LOOCV 計算成本與其他 CV 方法相當。

Scikit-learn 實作

from sklearn.model_selection import LeaveOneOut, cross_val_score
from sklearn.linear_model import LogisticRegression
import numpy as np

loo = LeaveOneOut()
model = LogisticRegression()

# 對每個樣本做一次預測
scores = cross_val_score(model, X, y, cv=loo, scoring='accuracy')
print(f'LOOCV 準確率:{np.mean(scores):.4f} ± {np.std(scores):.4f}')

實際應用

小型資料集的模型選擇

當資料集規模小(N < 100),無法分割出獨立的驗證集時,LOOCV 是最大化利用資料的方式。常見於醫學研究(如稀有疾病預測,樣本數僅數十筆)或特殊工業品管情境。

Leave-One-Group-Out CV(LOGO-CV)

LOOCV 的衍生版本,適用於資料有自然分組結構時(如每個受試者的多次量測)。每次留出一個「組」作為驗證集,確保驗證集與訓練集來自不同受試者,更真實地評估模型的跨個體泛化能力。這在腦電波分析、使用者行為預測等個人化任務中非常重要。

與 Jackknife 估計的關係

統計學中的 Jackknife 刀切法與 LOOCV 形式完全相同,但目的略有不同:Jackknife 用於估計統計量(如相關係數)的偏誤與標準誤,而 LOOCV 用於估計模型的泛化效能。

常見誤區

誤區一:LOOCV 一定比 K-Fold 更準確 如前所述,LOOCV 雖然偏誤低,但方差高。在一般情況下,10-Fold CV 提供了更好的偏誤-方差平衡,是大多數情境的推薦選擇。LOOCV 的優勢主要體現在樣本數非常少(N < 50)的情境。

誤區二:LOOCV 總是計算成本很高 對於具備解析解的線性模型(線性迴歸、嶺迴歸),LOOCV 可以在不反覆訓練 N 個模型的情況下精確計算,成本與訓練一個模型相當,此時選用 LOOCV 是完全合理的。

誤區三:LOOCV 可以用於時序資料 時序資料必須維持時間順序,不能隨機抽取一個時間點作為驗證集而用未來資料訓練。時序資料應使用 TimeSeriesSplit,否則就是前視偏誤(Look-ahead Bias)。

與相關技術的比較

方法 折數 偏誤 方差 計算成本 推薦場景
Holdout 1 極低 大資料集、快速基線
5-Fold CV 5 一般場景
10-Fold CV 10 大多數推薦預設
LOOCV N 極低 高(線性模型除外) 小型資料集
Stratified K-Fold K 不平衡分類問題

LOOCV 在統計理論上最接近「真正的泛化誤差估計」,但 10-Fold CV 在實務中因方差更小且計算成本可控,通常是更平衡的選擇。

常見問題