測試數據集(Test Set) 和驗證數據集 (Validation Set) 之間的區別

我們在做模型的時候,通常會碰到兩個數據集:測試數據集(Test Set) 和驗證數據集 (Validation Set) 。那麼他之間有何區別呢?下面有個簡單的解釋:

訓練數據集(Training Set):

是一些我們已經知道輸入和輸出的數據集訓練機器去學習,通過擬合去尋找模型的初始參數。例如在神經網路(Neural Networks)中, 我們用訓練數據集和反向傳播演算法(Backpropagation)去每個神經元找到最優的比重(Weights)。

驗證數據集(Validation Set):

也是一些我們已經知道輸入和輸出的數據集,通過讓機器學習去優化調整模型的參數,在神經網路中, 我們用驗證數據集去尋找最優的網路深度(number of hidden layers),或者決定反向傳播演算法的停止點;在普通的機器學習中常用的交叉驗證(Cross Validation) 就是把訓練數據集本身再細分成不同的驗證數據集去訓練模型。

測試數據集(Test Set):

用戶測試模型表現的數據集,根據誤差(一般為預測輸出與實際輸出的不同)來判斷一個模型的好壞。

為什麼驗證數據集和測試數據集兩者都需要?

因為驗證數據集(Validation Set)用來調整模型參數從而選擇最優模型,模型本身已經同時知道了輸入和輸出,所以從驗證數據集上得出的誤差(Error)會有偏差(Bias)。

但是我們只用測試數據集(Test Set) 去評估模型的表現,並不會去調整優化模型。

在傳統的機器學習中,這三者一般的比例為training/validation/test = 50/25/25, 但是有些時候如果模型不需要很多調整隻要擬合就可時,或者training本身就是training+validation (比如cross validation)時,也可以training/test =7/3.

但是在深度學習中,由於數據量本身很大,而且訓練神經網路需要的數據很多,可以把更多的數據分給training,而相應減少validation和test。

———

內容來自數問社區:dataquestion.com/questi

更多數據分析乾貨請關注數問專欄

推薦閱讀:

模式識別機器學習的發展方向?
沒想到你是這樣的兔子--kd 樹思路篇
阿里雲前端周刊 - 第 13 期
最簡單的 GAN 解釋 (生成對抗網路)
一個沒有基礎的工科研究生如何學習神經網路?

TAG:大数据 | 数据分析 | 机器学习 |