簡體   English   中英

了解機器學習的交叉驗證

[英]Understanding Cross Validation for Machine learning

以下關於交叉驗證的說法正確嗎?:

訓練數據被分成不同的組,除一個訓練數據集外,所有訓練數據集都用於訓練 model。一旦訓練了 model,“遺漏”的訓練數據將用於執行超參數調整。 一旦選擇了最佳超參數,測試數據將應用於 model 以給出結果,然后將其與經歷過類似過程但具有不同訓練數據集組合的其他模型進行比較。 然后選擇在測試數據上具有最佳結果的 model。

在此處輸入圖像描述

我不認為這是正確的。 你寫了:

一旦 model 被訓練,“遺漏”訓練數據用於執行超參數調整

您通過選擇(手動或使用網格搜索或隨機搜索等方法)一組模型的超參數(您設置值的參數,甚至在您將 model 擬合到數據之前)來調整 model。 然后,對於一組選定的超參數值,您可以使用交叉驗證計算驗證集誤差。

所以它應該是這樣的:

訓練數據分為不同的組,除了一個訓練數據集外,所有訓練數據集都用於訓練 model。一旦訓練了 model,“遺漏”的訓練數據用於...

...計算誤差。 在交叉驗證結束時,您將在 k 個遺漏集上計算出 k 個錯誤。 您接下來要做的是計算這 k 個錯誤的平均值,這會為您提供一個值 - 驗證集錯誤。

如果你有 n 組超參數,你只需重復該過程 n 次,這會給你 n 個驗證集錯誤。 然后你選擇這個給你最小驗證錯誤的集合。

最后,您通常會計算測試集誤差以查看模型在未見數據上的性能如何,模擬將 model 投入生產並查看測試集誤差和驗證集誤差之間是否存在差異。 如果存在顯着差異,則意味着過擬合。

只是在交叉驗證本身上添加一些東西,我們使用 k-CV 或 LOOCV 的原因是它是很好的測試集錯誤估計,這意味着當我使用超參數進行操作並且驗證集錯誤的值下降時,我知道我真的改進了 model 而不是幸運,只是更好地使 model 適合訓練集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM