基礎知識指南

交叉驗證

交叉驗證是一種重採樣技術,用於估計模型對未見過的資料的泛化能力。

閱讀時間約2分鐘最後更新

概述

It makes better use of limited data and gives a more reliable performance estimate than a single train/test split.

深入探討

單一訓練/測試分割是脆弱的:您獲得的分數在很大程度上取決於哪些行恰好落在測試集中。交叉驗證透過輪換測試集的角色來解決這個問題。在 k 折交叉驗證中,您將資料分成 k 個相等的折疊,對其中的 k-1 個進行訓練,對保留的折疊進行評估,然後重複 k 次,以便每一行都被精確測試一次。對 k 分數進行平均可以得到更穩定的估計值以及變異性的測量。常見的選擇是 5 折或 10 折。變體包括分層 k 折(保留不平衡資料的類別比例)、留一法(k 等於樣本數)以及從不訓練未來來預測過去的時間序列分割。

技術洞察

交叉驗證對於模型選擇和超參數調整來說是最強大的:您可以透過平均驗證分數來比較配置,而不是過度擬合一個分割。一個關鍵的陷阱是資料外洩——任何「看到」整個資料集的預處理(縮放、特徵選擇、插補)都必須適合每個折疊,而不是在分割之前,否則你的估計將出現樂觀偏差。嵌套交叉驗證將調整與最終評估分開,以避免這種洩漏。

戰略影響

更明確的決策

它可以幫助您將清晰的技術聲明與行銷語言分開。

成本與預算

在花費金錢或時間之前,您可以提出更好的實施問題。

團隊與工作流程

具有共同理解的團隊可以做出更好的產品、政策和學習決策。

交叉驗證的未來

隨著資料集和模型的成長,運行 k 個完整的訓練週期變得昂貴,因此從業者越來越傾向於使用單一大型保留驗證集進行深度學習,同時為小型或表格資料集保留交叉驗證。預設情況下,自動化 ML 和 scikit-learn 的 GridSearchCV 和 Optuna 等工具會將交叉驗證融入超參數搜尋。對更便宜的近似、防洩漏管道以及分組、分層和時間相關數據的正確驗證的研究仍在繼續。

現實世界的實施

在採用一種模型之前,使用 5 倍交叉驗證來比較邏輯迴歸、隨機森林和梯度提升。

在不平衡的詐欺偵測資料集上套用分層 k 折疊,使每個折疊保持大致相同的稀有類別比例。

執行 GridSearchCV 或 RandomizedSearchCV,交叉驗證每個超參數組合以選擇最佳設定。

使用時間序列(滾動/前向連結)交叉驗證來評估庫存或需求預測器,而無需對未來數據進行培訓。

風險與防護欄

不同的團隊可能會以不同的方式使用相同術語,因此請儘早定義範圍。

基準測試可能看起來很強大,但實際效能卻參差不齊。

忽視數據品質和評估計劃通常會產生脆弱的結果。

實施路線圖

1

從您需要的結果的簡單語言定義開始。

2

在測試之前選擇一種成功指標和一種失敗條件。

3

使用代表性資料運行小型試點,而不是完善的演示集。

4

記錄交叉驗證在哪些方面有幫助以及在哪些方面更簡單的方法更好。

不斷探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Cross-Validation quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

開始測驗

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一步指南

交叉編碼器與雙編碼器

常見問題

What is Cross-Validation?

交叉驗證是一種重採樣技術,用於估計模型對未見過的資料的泛化能力。它可以更好地利用有限的數據,並提供比單一訓練/測試分割更可靠的效能估計。

在標準的 k 折交叉驗證中,每個資料點用於測試多少次?

在 k 輪中,每個折疊都恰好作為測試集一次,因此每個樣本都會被測試一次,並在其餘樣本上進行訓練。

與單次訓練/測試分割相比,k 折交叉驗證的主要優點是什麼?

與依賴一次任意分割相比,透過對多次折疊進行平均,交叉驗證減少了性能估計的變異數。

為什麼普通的k折交叉驗證不適合時間序列預測?

混洗按時間排序的資料會將未來洩漏到訓練中,因此時間序列 CV 使用僅根據過去的觀察進行訓練的前向鏈分割。