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

  在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. 優化

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

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

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

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

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

相關文章
相關標籤/搜索