交叉驗證(Cross-Validation)是一種評估和選擇機器學習模型的重要方法,透過將數據集分割成多個子集,多次訓練和驗證模型,來獲得對模型泛化能力更可靠的估計。
常見交叉驗證方法:
1. k折交叉驗證(k-Fold Cross-Validation)• 將數據分成k個大小相近的子集,每次用其中一個子集做驗證集,其餘k-1個子集做訓練集。
• 重複k次,每個子集均做過一次驗證集。最後平均k次驗證結果。
• 常見k值為5或10。
2. 留一交叉驗證(Leave-One-Out Cross-Validation, LOOCV)
• k折交叉驗證的極端情況,k等於樣本數。每次用1個樣本作為驗證集,其餘樣本作訓練。
• 偏差小,但計算成本高。
3. 分層k折交叉驗證(Stratified k-Fold CV)
• 特別針對分類任務,保持每個類別在各折中比例一致,防止類別不平衡影響評估結果。
4. 重複k折交叉驗證(Repeated k-Fold CV)
• 將k折交叉驗證重複多次(不同隨機分割),提高評估穩定性。
5. 時間序列交叉驗證(Time Series CV)
• 適用於時間序列數據,保證驗證集在訓練集之後,避免未來數據“洩漏”給模型。
交叉驗證的優點:
• 減少由單次測試集分割造成的隨機偏差。
• 有助於模型選擇與超參數調整。
• 能更有效利用有限數據。
簡單比喻:
交叉驗證就像多次換座位試試不同角度看比賽,避免只看一次就得出不完整結論。
總結:
交叉驗證透過多次分割數據集交替訓練與驗證,提供模型泛化性能的穩定估計,常用方法包括k折交叉驗證、留一驗證和分層k折交叉驗證等。

















