在NG的ML課程中和西瓜書中都有提到:最佳的數據分類情況是把數據集分為三部分,分別為:訓練集(train set),驗證集(validation set)和測試集(test set)。那么,驗證集和測試集有什么區別呢?
實際上,兩者的主要區別是:驗證集用於進一步確定模型中的超參數(例如正則項系數、ANN中隱含層的節點個數等)而測試集只是用於評估模型的精確度(即泛化能力)!
舉個例子:假設建立一個BP神經網絡,對於隱含層的節點數目,我們並沒有很好的方法去確定。此時,一般將節點數設定為某一具體的值,通過訓練集訓練出相應的參數后,再由交叉驗證集去檢測該模型的誤差;
然后再改變節點數,重復上述過程,直到交叉驗證誤差最小。此時的節點數可以認為是最優節點數,即該節點數(這個參數)是通過交叉驗證集得到的。而測試集是在確定了所有參數之后,根據測試誤差來評判這個學
習模型的;也可以說是用來評估模型的泛化能力。所以,驗證集主要主要是用於模型的調參。