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

模式識別之訓練集、驗證集和測試集

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

訓練集:每個樣本都是(feature,label)造型,用來訓練模式識別系統。

驗證集:在訓練集上訓練好系統後,有些引數是不可學習的,需要人為設定的,比如支援向量機SVM中的超引數鬆弛引數C。但是人為設定可能不是最優的,怎樣尋找最優的這個引數呢?這就需要驗證集。在驗證集上不斷除錯這個人為設定的超引數,直到在驗證集上得到的結果滿意為止,這一步通常採用驗證集上的交叉驗證來確定最優超引數。需要人為設定的超引數確定後,到此這個系統的所有引數都確定了,然後看一下這個系統在測試集上的效果怎麼樣。

測試集:用來最終評估模式識別系統的效能。

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