訓練集、驗證集和測試集

機器學習的普遍任務就是從數據中學習和構建模型 （ 該過程稱之爲訓練 ） ， 並且能夠在將來遇到的數據上進行預測 。 用於構建最終模型的數據集通常有多個 ； 在構建模型的不同階段 ， 通常有三種數據集 ： 訓練集 、 驗證集和測試集 。 首先 ， 模型在訓練集 （ 英語 ： training dataset ） 上進行擬合 。 對於監督式學習 ， 訓練集是由用來擬合參數 （ 例如人工神經網絡中神經元之間鏈接的權重 ） 的樣本組成的集合 。 在實踐中 ， 訓練集通常是由輸入向量 （ 標量 ） 和輸出向量 （ 標量 ） 組成的數據對 。 其中輸出向量 （ 標量 ） 被稱爲目標或標籤 。 在訓練過程中 ， 當前模型會對訓練集中的每個樣本進行預測 ， 並將預測結果與目標進行比較 。 根據比較的結果 ， 學習算法會更新模型的參數 。 模型擬合的過程可能同時包括特徵選擇和參數估計 。 接下來 ， 擬合得到的模型會在第二個數據集 — — 驗證集 （ 英語 ： validation dataset ） — — 上進行預測 。 在對模型的 （ 例如神經網絡中隱藏層的神經元數量 ） 進行調整時 ， 驗證集提供了對在訓練集上擬合得到模型的無偏評估 。 驗證集可用於正則化中的提前停止 ： 在驗證集誤差上升時 （ 這是在訓練集上過擬合的信號 ） ， 停止訓練 。 不過 ， 在實踐中 ， 由於驗證集誤差在訓練過程中會有起伏 ， 這種做法有時不奏效 。 由此 ， 人們發明了一些規則 ， 用做判定過擬合更好的信號 。 最後 ， 測試集 （ 英語 ： test dataset ） 可被用來提供對最終模型的無偏評估 。 若測試集在訓練過程中從未用到 （ 例如 ， 沒有被用在交叉驗證當中 ） ， 則它也被稱之爲預留集 。