Cross-Validation

為什麼測試誤差的 CV 估計會低估實際測試誤差?

  • July 25, 2016

據我了解,測試誤差的 k 折交叉驗證估計通常會低估實際測試誤差。我很困惑為什麼會這樣。我明白為什麼訓練誤差通常低於測試誤差 - 因為您正在使用與估計誤差相同的數據來訓練模型!但交叉驗證的情況並非如此——在訓練過程中,您測量錯誤的折疊被特別忽略了。

另外,說測試誤差的交叉驗證估計是向下偏差的是否正確?

舉個例子:如果您最初有多個模型(每個模型都有一定的 CV 誤差和誤差方差),則僅報告模型的 CV 誤差是有問題的,然後使用此誤差為您的應用選擇最適合的模型。這是有問題的,因為對於每個模型,您仍然有一定的機會幸運/不幸(並獲得更好/更差的結果) - 通過選擇模型,您可能還選擇了您更幸運的模型。因此,將此錯誤報告為最終錯誤估計往往過於樂觀。

如果您想更深入地了解細節:此答案鏈接到有關此問題的一些易於閱讀的論文:交叉驗證誤用(報告最佳超參數值的性能)

正如@cbeleites 指出的那樣:這是有問題的,如果一個人使用獲得的k-fold CV 誤差來例如a)從多個模型中選擇一個最佳模型,例如使用不同的超參數,這是訓練過程的一部分,並且b)然後報告與測試錯誤相同的錯誤,而不是使用單獨的保留測試集。如果您打算詢問純 CV 錯誤本身 - 而不使用它來選擇任何模型 - @cbeleites 的答案更有可能是您正在尋找的。

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

comments powered by Disqus