[轉載]
在NG的ML課程中和西瓜書中都有提到:最佳的數據分類狀況是把數據集分爲三部分,分別爲:訓練集(train set),驗證集(validation set)和測試集(test set)。那麼,驗證集和測試集有什麼區別呢?
實際上,二者的主要區別是:驗證集用於進一步肯定模型中的超參數(例如正則項係數、ANN中隱含層的節點個數等)而測試集只是用於評估模型的精確度(即泛化能力)!
舉個例子:假設創建一個BP神經網絡,對於隱含層的節點數目,咱們並無很好的方法去肯定。此時,通常將節點數設定爲某一具體的值,經過訓練集訓練出相應的參數後,再由交叉驗證集去檢測該模型的偏差;
而後再改變節點數,重複上述過程,直到交叉驗證偏差最小。此時的節點數能夠認爲是最優節點數,即該節點數(這個參數)是經過交叉驗證集獲得的。而測試集是在肯定了全部參數以後,根據測試偏差來評判這個學
習模型的;也能夠說是用來評估模型的泛化能力。因此,驗證集主要主要是用於模型的調參。網絡
【來自百度百科】
這種技術的一個要點是在獲得最終模型前不能以任何方式分析或使用測試集。一個常見錯誤是在效果評估後從新調整模型而後再次訓練評估。測試