首先三個概念存在於 有監督學習的范疇
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.
--------- Pattern Recognition and Neural Networks , Ripley, B.D
具體功能用途區別:
(1)訓練集
作用:估計模型
學習樣本數據集,通過匹配一些參數來建立一個分類器。建立一種分類的方式,主要是用來訓練模型的。
(2)驗證集
作用:確定網絡結構或者控制模型復雜程度的參數
對學習出來的模型,調整分類器的參數,如在神經網絡中選擇隱藏單元數。驗證集還用來確定網絡結構或者控制模型復雜程度的參數。
(3)測試集
作用:檢驗最終選擇最優的模型的性能如何
主要是測試訓練好的模型的分辨能力(識別率等)
驗證集和測試集的划分
過度擬合概念:在數據挖掘中一般通過一定量打過標簽的訓練數據來訓練模型,然后再使用訓練的模型對測試數據進行預測。但是,訓練數據不可能涵蓋所有的樣例,假設你要做的是預測房價,模型是一條曲線,如果你的這條曲線非常完美的通過了訓練數據中所有的點,那么你的模型很有可能就是過擬合狀態的,就是對訓練數據來說過於完美而偏離了真實的曲線,從而導致預測不准。
Why separate test and validation sets?
1. The error rate estimate of the final model on validation data will be biased (smaller than the true error rate) since the validation set is used to select the final model.
2. After assessing the final model with the test set, YOU MUST NOT tune the model any further.
--------- Pattern Recognition and Neural Networks , Ripley, B.D
參數角度的划分:
訓練集就是用來訓練參數的,一般是用來梯度下降的。而驗證集基本是在每個epoch完成后,用來測試一下當前模型的准確率。因為驗證集跟訓練集沒有交集,因此這個准確率是可靠的。那么為啥還需要一個測試集呢?
對於一個模型來說,其參數可以分為普通參數和超參數。
(1)在不引入強化學習的前提下,那么普通參數就是可以被梯度下降所更新的,也就是訓練集所更新的參數。
(2)超參數,比如網絡層數、網絡節點數、迭代次數、學習率等等,這些參數不在梯度下降的更新范圍內。盡管現在已經有一些算法可以用來搜索模型的超參數,但多數情況下我們還是自己人工根據驗證集來調。
一個典型的划分是訓練集占總樣本的50%,而其它各占25%,三部分都是從樣本中隨機抽取。

(1)留出法
1. 把數據集分成互不相交的兩部分,一部分是訓練集,一部分是測試集。
2. 保持數據分布大致一致,類似分層抽樣
3. 訓練集數據的數量應占2/3到4/5
4. 為了保證隨機性,將數據集多次隨機划分為訓練集和測試集,然后在對多次划分結果取平均。
(2)交叉驗證法
1. 將數據集隨機分為互斥的k個子集,為保證隨機性,P次隨機划分取平均。
2. 將k個子集隨機分為k-1個一組剩下一個為另一組,有k種分法。
3. 將每一種分組結果中,k-1個子集的組當做訓練集,另外一個當做測試集,這樣就產生了k次預測,對其取平均
4. 稱為p次k折交叉驗證,一般取k=10
(3)自助法
1. 適用於樣本量較小,難以划分時。換句話說,樣本量足夠時,用自助法並不如留出法和交叉驗證法,因其無法滿足數據分布一致。
2. 每次隨機從數據集(有m個樣本)抽取一個樣本,然后再放回(也就是說可能被重復抽出),m次后得到有m個樣本的數據集,將其作為訓練集
3. 始終不被抽取到的樣本的比例:

也就是說這保證了訓練集樣本數(不重復)在2/3左右
注意:
將數據集划分訓練集和測試集是為了選定一個相對好的模型,當模型選定以后,訓練數據仍是整個數據集。
https://zhuanlan.zhihu.com/p/28812821