訓練集:擬合模型,用這部分數據來建立模型,找出最佳的w和b。
驗證集:用以確定模型超參數,選出最優模型。train建了一個模型,但是模型的效果僅體現了訓練數據,但不一定適合同類的其他數據,所以建模前數據分成兩部分,一部分為訓練數據,一部分為驗證數據。另外,你也可能訓練多個模型,但不知哪個模型性能更佳,這時可以將驗證數據輸入不同模型進行比較。在神經網絡中,我們用驗證數據集去尋找最優的網絡深度(number of hidden layers),或者決定反向傳播算法的停止點;在普通的機器學習中常用的交叉驗證(Cross Validation) 就是把訓練數據集本身再細分成不同的驗證數據集去訓練模型。
測試集:用來測試學習器對新樣本的學習能力。
重點:對最終學習得到的函數進行性能評估的數據叫作測試集,必須保證測試集完全獨立,直到模型調整和參數訓練全部完成前應該將測試集進行封存,以任何形式使用測試集中的信息都是一種窺探。因為驗證數據集(Validation Set)用來調整模型參數從而選擇最優模型,模型本身已經同時知道了輸入和輸出,所以從驗證數據集上得出的誤差(Error)會有偏差(Bias)。只用測試數據集(Test Set) 去評估模型的表現,并不會去調整優化模型。
選擇在驗證集上誤差最小的模型,并合并訓練集和驗證集作為整體訓練模型,找到最優函數。
在測試集上對最優函數的泛化性能進行度量。?????
劃分訓練集和測試集的方法
留出法:直接將數據集D劃分為兩個互斥的集合,訓練集和測試集劃分盡量保證數據分布的一致性,如采用分層采樣,采用若干次隨機劃分,重復多次試驗結果取平均值作為留出法的評估結果。
交叉驗證法:將數據集劃分為k個大小相似的互斥子集,每次用k-1個子集作為訓練集,余下的作為測試集,從而進行k次訓練和測試,返回k次結果的平均值。若D中包含m個樣本,k=m,則得到了留一法。
自助法:給定數據集D包含m個樣本,在D中進行有放回的m次采樣,得到數據集D1,重復m次,得到m個數據集,D\D1用做測試集。自助法在數據集較小,難以有效劃分訓練集,測試集時使用,然而改變了原始數據的分布,會引入偏差。