機器學習之訓練集_驗證集_測試集


  在NG的ML課程中和西瓜書中都有提到:最佳的數據分類情況是把數據集分為三部分,分別為:訓練集(train set),驗證集(validation set)和測試集(test set)。那么,驗證集和測試集有什么區別呢?

  實際上,兩者的主要區別是:驗證集用於進一步確定模型的參數(或結構)而測試集只是用於評估模型的精確度!
  舉個例子:假設建立一個BP神經網絡,對於隱含層的節點數目,我們並沒有很好的方法去確定。此時,一般將節點數設定為某一具體的值,通過訓練集訓練出相應的參數后,再由交叉驗證集去檢測該模型的誤差;
然后再改變節點數,重復上述過程,直到交叉驗證誤差最小。此時的節點數可以認為是最優節點數,即該節點數(這個參數)是通過交叉驗證集得到的。而測試集是在確定了所有參數之后,根據測試誤差來評判這個學
習模型的。所以,驗證集主要主要是用於模型的調參。

  訓練集,驗證集,測試集這三個名詞在機器學習領域的文章中很常見,以下是這三個詞的英文解釋。 

Training set: A set of examples used for learning, which is to fit the parameters [i.e., weights] of the classifier. 

Validation set: A set of examples used to tune the parameters [i.e., architecture, not weights] of a classifier, for example to choose the number of hidden units in a neural network. 

Test set: A set of examples used only to assess the performance [generalization] of a fully specified classifier. 

訓練集:學習樣本數據集,通過匹配一些參數來建立一個分類器。建立一種分類的方式,主要是用來訓練模型的。

驗證集:對學習出來的模型,微調分類器的參數,如在神經網絡中選擇隱藏單元數。驗證集還用來確定網絡結構或者控制模型復雜程度的參數。

測試集:主要用於測試訓練好的模型的分類能力(識別率等)

顯然,training set是用來訓練模型或確定模型參數的,如ANN中權值等; validation set是用來做模型選擇(model selection),即做模型的最終優化及確定的,如ANN的結構;而 test set則純粹是為了測試已經訓練好的模型的推廣能力。

但實際應用中,一般只將數據集分成兩類,即training set 和test set,大多數文章並不涉及validation set。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM