Machine-Learning

是否同時使用訓練集和測試集進行超參數調整過擬合?

  • September 14, 2018

你有一個訓練集和一個測試集。您將它們結合起來並執行 GridSearch 之類的操作來確定模型的超參數。然後,您使用這些超參數在訓練集上擬合一個模型,並使用測試集對其進行評估。

這是過擬合嗎?最終,數據沒有適合測試集,但在決定超參數時考慮了測試集。

保持和交叉驗證背後的想法是估計學習算法的泛化性能 - 即從與訓練數據相同的分佈中提取的未知/未見數據的預期性能。這可用於調整超參數或報告最終性能。該估計的有效性取決於用於訓練和估計性能的數據的*獨立性。*如果違反了這種獨立性,則性能估計將出現過度樂觀的偏差。可能發生這種情況的最令人震驚的方式是通過估計已經用於訓練或超參數調整的數據的性能,但也有許多更微妙和陰險的方式。

您詢問的程序在多個方面出錯。首先,相同的數據用於訓練和超參數調整。超參數調整的目標是選擇能夠提供良好泛化性能的超參數。通常,這是通過估計不同選擇的超參數(例如使用驗證集)的泛化性能,然後選擇最佳的。但是,如上所述,如果相同的數據用於訓練,這個估計將過於樂觀。結果是將選擇次優的超參數。特別是,將傾向於過度擬合的高容量模型。

其次,已經用於調整超參數的數據正在被重新用於估計性能。如上所述,這將給出一個欺騙性的估計。這本身並不是過度擬合,但它意味著,如果發生了過度擬合(很可能是,如上所述),那麼您將不會知道。

補救措施是使用三個獨立的數據集:用於訓練的訓練集、用於超參數調整的驗證集和用於估計最終性能的測試集。或者,使用嵌套交叉驗證,這將提供更好的估計,並且在沒有足夠數據的情況下是必要的。

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

comments powered by Disqus