Cross-Validation
使用測試數據集進行交叉驗證
我對交叉驗證的應用有點困惑。因此,如果我有一個大數據集,我會將我的數據拆分為測試和訓練數據,並對測試數據進行驗證。但是,如果我有一個小數據集,我想使用交叉驗證,然後驗證已經在其中執行。
令我困惑的是,很多人拆分數據,通過交叉驗證對訓練數據進行訓練,然後對測試數據集進行驗證。所以他們結合了這兩種方法。這是一個正確的方法嗎?由於我的數據集很小,我可以只做交叉驗證嗎?
讓我們看看三種不同的方法
- 在最簡單的場景中,可以收集一個數據集並通過交叉驗證訓練您的模型以創建最佳模型。然後您將收集另一個完全獨立的數據集並測試您的模型。然而,考慮到時間或成本的限制,這種情況對於許多研究人員來說是不可能的。
- 如果您有足夠大的數據集,您可能希望拆分數據並將其放在一邊(完全不受訓練影響)。這是為了將其模擬為一個完全獨立的數據集,即使它來自同一個數據集,但模型訓練不會從這些樣本中獲取任何信息。然後,您將在剩餘的訓練樣本上構建模型,然後在這些遺漏的樣本上進行測試。
- 如果您的數據集較小,您可能無法承擔簡單地忽略大量數據以進行模型構建的代價。因此,驗證在每個折疊(k 折疊 CV?)上執行,並且您的驗證指標將在每個驗證中匯總。
要更直接地回答您的問題,是的,您可以對完整數據集進行交叉驗證。然後,您可以使用您的預測類和實際類通過您喜歡的任何指標(準確度、AUC 等)來評估您的模型性能。
也就是說,您可能仍然希望查看重複的交叉驗證來評估模型的穩定性。關於這方面的一些很好的答案是關於內部與外部 CV和這裡的重複次數