TL:DR :在將ML模型發佈到生產之前,對所有可用數據進行訓練都是一個好主意嗎?換句話說,是否可以對所有可用數據進行訓練,並且不檢查模型是否過擬合,或者最終讀取模型的預期性能?
說我有一個由 $ \ alpha $ span>參數化的模型家族。我可以在 $ \ alpha $ span>上進行搜索(例如,網格搜索),例如,對每個候選人進行k倍交叉驗證。
使用交叉驗證選擇 $ \ alpha $ span>的要點是,我可以檢查 a 學習的模型 $ \ beta_i $ span>用於 特定的 $ \ alpha_i $ 有例如通過在每個CV迭代(驗證集)中的“看不見的數據”上進行測試來進行過度擬合。在遍歷所有 $ \ alpha_i $ span>之後,我可以選擇一個模型 $ \ beta _ {\ alpha ^ *} $ span>學習了似乎在網格搜索中效果最好的參數 $ \ alpha ^ * $ span>
現在,說選型後,我想使用 all 嘗試中的可用數據運送生產中最好的模型。為此,我可以使用通過交叉驗證通過網格搜索選擇的參數 $ \ alpha ^ * $ span>,然後在對模型進行全面訓練後( $ F $ span>)數據集,我將得到一個單一的 new 學習模型 $ \ beta ^ {F} _ {\ alpha ^ *} $ span>
問題在於,如果我將整個數據集用於訓練,我將無法可靠地檢查這種新學習的模型 $ \ beta ^ { F} _ {\ alpha ^ *} $ span> 過擬合,或它如何處理看不見的數據。那麼這完全是一種好習慣嗎?考慮這個問題的好方法是什麼?