Cross-Validation

在 k 折交叉驗證中,訓練子樣本是否包含測試集?

  • March 17, 2014

在此Wikipedia頁面中的 K 折交叉驗證小節中,它說“在 k 折交叉驗證中,原始樣本被隨機劃分為 k 個大小相等的子樣本。在 k 個子樣本中,保留一個子樣本作為驗證數據對模型進行測試,剩下的 k-1 個子樣本作為訓練數據”。測試數據根本不在圖中。

而在我讀過的一本書中,作者清楚地表明

  1. 完整的數據分為三組:訓練集、測試集和驗證集(或 Wikipedias 語言中的子樣本)。
  2. 在 k 個子樣本中,保留一個子樣本作為驗證數據,保留另一個子樣本作為測試數據,並使用 k-2 個子樣本作為訓練數據。

哪個是真的?

它們在各自的上下文中都是正確的。他們描述了在不同情況下兩種不同的模型選擇方式。

一般來說,當你在做模型選擇和測試時,你的數據分為三個部分,訓練集、驗證集和測試集。您使用您的訓練集來訓練不同的模型,估計您的驗證集的性能,然後選擇具有最佳性能的模型並在您的測試集上對其進行測試。

另一方面,如果您使用 K 折交叉驗證來估計模型的性能,那麼您的數據將被分成 K 折,循環遍歷 K 折,每次使用一個折作為測試(或驗證)設置並使用其餘(K-1)折疊作為訓練集。然後,您對所有折疊進行平均,以獲得模型的估計測試性能。這就是維基百科頁面所指的內容。

但請記住,這是為了測試特定模型,如果您有多個候選模型並且也想進行模型選擇,則必須僅使用您的訓練集選擇模型以避免這種微妙的循環邏輯謬誤. 因此,您進一步將 (K-1) 折疊“訓練數據”分為兩部分,一部分用於訓練,另一部分用於驗證。這意味著您首先進行額外的“交叉驗證”以在 (K-1) 折中選擇最佳模型,然後在測試折中測試此最佳模型。換句話說,你正在做一個兩級交叉驗證,一個是一般的 K-fold 交叉驗證,並且在每個交叉驗證循環中,有一個額外的 (K-1)-fold 交叉驗證型號選擇。然後你有你在你的問題中所說的,‘在 k 個子樣本中,一個子樣本被保留作為驗證數據,另一個子樣本被保留作為測試數據,並且 k-2 個子樣本被用作訓練數據。

引用自:https://stats.stackexchange.com/questions/90288

comments powered by Disqus

相關問答