1. 程式人生 > >訓練集-驗證集-測試集的關係與作用

訓練集-驗證集-測試集的關係與作用

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

訓練集(Training set)

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

驗證集(Cross ValidaDon set)

作用是當通過訓練集訓練出多個模型後,為了能找出效果最佳的模型,使用各個模型對驗證集資料進行預測,並記錄模型準確率。選出效果最佳的模型所對應的引數,即用來調整模型引數。如svn中的引數c和核函式等。

測試集(Test set)

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

對原始資料進行三個資料集的劃分,也是為了防止模型過擬合。當使用了所有的原始資料去訓練模型,得到的結果很可能是該模型最大程度地擬合了原始資料,亦即該模型是為了擬合所有原始資料而存在。當新的樣本出現,再使用該模型進行預測,效果可能還不如只使用一部分資料訓練的模型。