在機器學習中,一般將樣本分成獨立的三部分訓練集(train set),驗證集(validation set)和測試集(test set)。其中,測試集用來檢驗最終選擇最優的模型的性能如何。
基本介紹
- 中文名:測試集
- 外文名:test set
- 引用領域:機器學習
含義,缺點,
含義
在機器學習和模式識別等領域中,一般需要將樣本分成獨立的三部分訓練集(train set),驗證集(validation set ) 和測試集(test set)。其中訓練集用來估計模型,驗證集用來確定網路結構或者控制模型複雜程度的參數,而測試集則檢驗最終選擇最優的模型的性能如何。一個典型的劃分是訓練集占總樣本的50%,而其它各占25%,三部分都是從樣本中隨機抽取。
但是,當樣本總量少的時候,上面的劃分就不合適了。常用的是留少部分做測試集。然後對其餘N個樣本採用K折交叉驗證法。就是將樣本打亂,然後均勻分成K份,輪流選擇其中K-1份訓練,剩餘的一份做驗證,計算預測誤差平方和,最後把K次的預測誤差平方和再做平均作為選擇最優模型結構的依據。特別的K取N,就是留一法(leave one out)。
缺點
測試集方法的代價是要減少一部分訓練數據。例如通常我們從訓練集中移除了30%的數據。這意味著相比於使用全量集合訓練來說,我們的模型會存在更大的偏差。在標準的流程中,評價完模型效果後,我們會用全量數據重新訓練來得到最終的模型。因此在這種情流程下,測試集的誤差評價結果是偏保守的,因為模型的實際誤差要比報告的誤差低一些。在實際中這種保守的誤差估計要比樂觀的誤差估計更有效。
這種技術的一個要點是在得到最終模型前不能以任何方式分析或使用測試集。一個常見錯誤是在效果評估後重新調整模型然後再次訓練評估。如果在一次建模中你重複使用一份測試集,這份測試集就被污染了。由於測試集參與了模型調整,它就不能再給出模型誤差的一個無偏估計了。