模型評估 · 機器學習基礎

交叉驗證 Cross-Validation

只切一次訓練/測試,成績靠運氣;交叉驗證輪流驗證再平均,把「運氣成分」擠掉,泛化評估更可靠。

K-foldStratifiedLeave-One-Out泛化評估資料洩漏

💡一句話定義

交叉驗證(Cross-Validation)= 把資料切成 K 折(fold),輪流拿其中一折當驗證集、其餘當訓練集,重複 K 次,再把 K 次成績取平均。這樣估出來的表現,比單次切分更穩、更接近模型真正的泛化能力。

它主要用來評估模型、選模型、調超參數——不是拿來產出最終上線模型本身。

🎲為什麼不只切一次?

如果只把資料切一次成訓練/測試,那份測試集剛好簡單或剛好難,都會讓分數偏高或偏低——成績很吃「切法運氣」。交叉驗證讓每一折都輪流當過一次驗證集,再平均起來,把運氣成分抵消掉,評估自然更可靠、也更能看出模型穩不穩定。

🎮互動:三種切法動起來

用下拉選單切換方法,按「播放」讓橘色驗證折逐折輪替。留意 Stratified 每折都保留相同比例的少數類(三角形),LOO 則每次只留一筆當驗證。

交叉驗證機制展示
Fold: 1 / 5
訓練集 (Training)
驗證集 (Validation)

📊三種方法對照表

方法做法適用 / 成本
K-fold資料平分 K 份,輪流當驗證最常用;K 常取 5 或 10
Stratified K-fold每折都保留相同的類別比例分類且類別不平衡時用,避免某折缺少少數類
Leave-One-Out (LOO)K=樣本數 N,每次只留一筆驗證資料極少時;把資料用到極致,但計算很貴

🔢K 要設多少?

常用 510。K 越大 → 每次訓練資料越多、偏差越小,但折數多、計算越貴,且各折結果變異可能變大;K 越小則相反。資料非常少時可用 LOO(K=N)。實務上 5-fold 或 10-fold 是最常見的折衷。

⚠️小心資料洩漏(必考)

標準化、特徵選擇、調參都必須只在「訓練折」內做,再套用到驗證折——最好包進 Pipeline。如果先用「全部資料」做標準化或選特徵,驗證折的資訊就偷偷洩漏進訓練,成績會虛高、上線後現形。這是交叉驗證最常見也最愛考的陷阱。

自我檢測

Q1. 交叉驗證比單次切分好在哪?
單次切分成績受切法運氣影響大、變異高。交叉驗證讓每折輪流當驗證再平均,降低運氣成分,泛化評估更可靠、也能看出模型穩定度。
Q2. 什麼時候該用 Stratified K-fold?
分類任務且類別不平衡時。它讓每一折的類別比例與整體一致,避免某折完全沒有少數類而讓評估失真。
Q3. K 值大小的取捨是什麼?
K 越大偏差越小但計算越貴、變異可能變大;K 越小計算便宜但偏差較大。常用 5 或 10;資料極少時用 LOO(K=N)。
Q4. 交叉驗證最常見的資料洩漏是什麼?
把標準化、特徵選擇、調參用「全部資料」先做,導致驗證折資訊洩漏、成績虛高。正確做法是只在訓練折內做這些步驟,並包進 Pipeline。

🎯重點整理

📝 iPAS 考點提醒

交叉驗證(Cross-Validation)是穩健評估模型泛化能力的方法,iPAS 中級科目三常考。重點:把資料切成 K 折,輪流當驗證集、其餘當訓練集,取平均成績,比單一切分更可靠;類別不平衡用 Stratified K-fold、小樣本可用 Leave-One-Out(K=N)。易混點:交叉驗證是「評估與選模型、調超參數」的工具,不是訓練最終模型;且標準化、特徵選擇、調參都要只在訓練折內做,避免資料洩漏。情境:用 GridSearchCV 搭 K-fold 選超參數。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

交叉驗證在做什麼?

把資料切成 K 折,輪流拿一折當驗證、其餘當訓練,重複 K 次再取平均;比單次切分更穩健地估計模型的泛化表現。

為什麼不要只切一次訓練/測試?

單次切分結果受切法影響大、變異高;交叉驗證用多次輪替再平均,降低運氣成分,評估更可靠。

K 要設多少?

常用 5 或 10;K 越大偏差越小但變異大、計算也貴,K 小則相反。資料很少時可用 Leave-One-Out(K=N)。

Stratified K-fold 何時用?

分類且類別不平衡時;它讓每一折的類別比例與整體一致,避免某折缺少少數類而使評估失真。

交叉驗證要注意什麼洩漏?

標準化、特徵選擇、調參都要只在訓練折內進行,包進 Pipeline;否則驗證折資訊外洩,成績會虛高。

🧭 相關主題

← 返回 AI 學習與考證地圖