1. 程式人生 > >訓練集、驗證集和測試集

訓練集、驗證集和測試集

       通常在訓練機器學習模型的時候,我們會將資料劃分為訓練集、驗證集和測試集。一般來說,訓練集:驗證集:測試集的劃分比例為6:2:2。對原始資料進行三個集合的劃分,是為了能夠選出效果(可以理解為準確率)最好的、泛化能力最佳的模型。

      訓練集(Training Set)

      作用是用來擬合模型,通過設定分類器的引數,訓練分類模型。後續結合驗證集作用時,會選出同一引數的不同取值,擬合出多個分類器。

      驗證集(Cross ValidaDon Set)

       作用是當通過訓練集訓練出多個模型後,為了能找出效果最佳的模型,使用各個模型對驗證集資料進行預測,並記錄模型準確率。

      選出效果最佳的模型所對應的引數,即用來調整模型引數,如svn中的引數c和核函式等。在交叉驗證過程中也需要設定驗證集,如k-折交叉驗證(k-fold crossValidation)。

        測試集(Test Set)

        通過訓練集和驗證集得出最優模型後,使用測試集進行模型預測,用來衡量該最優模型的效能和分類能力。即可以把測試集當做從來不存在的資料集,當已經確定模型引數後,使用測試集進行模型效能評價。

        所以說,訓練集(Training Set)是用來訓練模型或確定模型引數的,如ANN中權值等; 驗證集(Validation Set)是用來做模型選擇(model selection),即做模型的最終優化及確定的,如ANN的結構;而測試集(Test Set)則純粹是為了測試已經訓練好的模