訓練集(train set),驗證集(validation set)和測試集(test set)

weixin_33912246發表於2018-09-02
  1. 把資料集分為三部分,分別為:訓練集(train set),驗證集(validation set)和測試集(test set)。
  2. 具體比例有各種說法。待補充
  3. 測試集是為了測模型泛化能力,不能在訓練的時候使用測試集資料。

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

【來自百度百科】
這種技術的一個要點是在得到最終模型前不能以任何方式分析或使用測試集。一個常見錯誤是在效果評估後重新調整模型然後再次訓練評估。

相關文章