Train/Val/Test · Cross-Validation

資料切分

別讓模型偷看考卷

用同一批資料訓練又評估,分數再高也是假的。
切成訓練 / 驗證 / 測試,測試集只開封一次;資料少就用 K-Fold 交叉驗證。

Train(讀書)· Validation(模擬考)· Test(期末考,🔒只一次)
01 — 白話直覺

為什麼不能拿考古題當期末考?

如果用同一批資料訓練又評估,就像考試前先看過考卷——分數很高,但完全不代表真實能力。資料切分就是把資料分成訓練集(讀書用)、驗證集(模擬考、調參用)、測試集(期末考、只看一次)。

訓練集
~60-70%

模型讀書、學規律的地方。

驗證集
~15-20%

調參、選模型用,可以反覆看。

🔒
測試集
~15-20%

最後才開封,模擬真實上線表現。

鐵則:測試集只能用一次。一旦你看著測試分數反覆調模型,它就被你「汙染」成第二個驗證集了。

02 — 核心互動

拖動比例 + 體驗 K-Fold 交叉驗證

上半部:拖動滑桿調三集合比例。下半部:切到「K-Fold」看交叉驗證怎麼把資料輪流當驗證集,讓評估更穩定——尤其資料量少時特別有用。

70
訓練 / 驗證 / 測試
狀態

K-Fold:把資料切成 K 份,每次拿 1 份當驗證、其餘 K-1 份訓練,輪 K 次再平均。沒有任何資料被浪費,評估也更不會因為「剛好切到好/壞的那批」而失真。

03 — 陷阱與選擇

切分階段最容易犯的錯

優點

  • 測試集隔離,才能誠實估計上線表現
  • 交叉驗證讓小資料也能穩定評估
  • 按時間切分,避免「看到未來」

缺點 / 限制

  • 資料洩漏:把測試資訊偷渡進訓練(最致命)
  • 隨機切時間序列 → 用未來預測過去
  • 類別不平衡時亂切,某類別全擠在一邊
  • 反覆用測試集調參,測試集失去意義

典型應用場景

✂️
一般切分
Train/Val/Test 70/15/15
🔁
小資料
K-Fold 交叉驗證榨乾每筆資料
時間序列
按時間切,只能用過去預測未來

📝 iPAS 考點提醒

資料切分與驗證是 iPAS 最高頻的觀念考點(初級科目一、中級科目二與三)。重點:訓練集學參數、驗證集調超參數與選模型、測試集只在最後評估一次,全程不可參與調校。易混點:用測試集調參等於資料洩漏、評估虛高;前處理(標準化、重取樣)只能用訓練集統計量並在每折內做。情境:時間序列不能隨機切,要用時間順序的前向驗證,避免用到未來資訊。

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

❓ 常見問題

訓練、驗證、測試集各做什麼?

訓練集學參數;驗證集調超參數與選模型;測試集只在最後評估真實泛化,全程不可參與訓練或調校。

為什麼需要驗證集?

若用測試集調參會洩漏資訊、高估表現;驗證集讓你在不碰測試集的情況下比較與選擇模型。

什麼是交叉驗證?

把資料分成 k 折,輪流當驗證、其餘訓練,平均 k 次結果;更穩定、充分利用資料,常用於資料量有限時。

什麼是資料洩漏?

測試或未來資訊不當進入訓練(如先對全資料標準化或重取樣),導致評估過度樂觀、上線後落差大。

時間序列怎麼驗證?

不能隨機切;要用時間順序的前向驗證(用過去預測未來),避免用到未來資訊造成洩漏。

🧭 相關主題

← 返回 AI 學習與考證地圖