關於訓練集,驗證集,測試集的划分


首先需要說明的是:訓練集(training set)、驗證集(validation set)和測試集(test set)本質上並無區別,都是把一個數據集分成三個部分而已,都是(feature, label)造型。尤其是訓練集與驗證集,更無本質區別。測試集可能會有一些區別,比如在一些權威計算機視覺比賽中,測試集的標簽是private的,也就是參賽者看不到測試集的標簽,可以把預測的標簽交給大賽組委會,他們根據你提交的預測標簽來評估參賽者模式識別系統的好壞,以防作弊。

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

訓練集:作用是用來擬合模型(訓練模式識別系統),通過設置分類器的參數,訓練分類模型。后續結合驗證集作用時,會選出同一參數的不同取值,擬合出多個分類器。

驗證集:作用是當通過訓練集訓練出多個模型后,為了能找出效果最佳的模型,使用各個模型對驗證集數據進行預測,並記錄模型准確率。選出效果最佳的模型所對應的參數,即用來調整模型參數。在訓練集上訓練好系統后,有些參數是不可學習的,需要人為設定的,比如支持向量機SVM中的超參數松弛參數C。但是人為設定可能不是最優的,怎樣尋找最優的這個參數呢?這就需要驗證集。在驗證集上不斷調試這個人為設定的超參數,直到在驗證集上得到的結果滿意為止,這一步通常采用驗證集上的交叉驗證來確定最優超參數。需要人為設定的超參數確定后,到此這個系統的所有參數都確定了,然后看一下這個系統在測試集上的效果怎么樣。

測試集:用來最終評估模式識別系統的性能和分類能力。即可以把測試集當做從來不存在的數據集,當已經確定模型參數后,可以使用測試集進行模型預測並評估模型的性能。

需要注意的是,當整個模式識別系統中沒有需要人為設定的超參數,所有參數都是通過學習得到的,則不需要驗證集,訓練集和測試集就夠了。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM