【小白學(xué)PyTorch】 2.淺談訓(xùn)練集驗證集和測試集
文章目錄:
經(jīng)驗誤差與過擬合
評估方法
經(jīng)驗誤差與過擬合
關(guān)鍵詞:錯誤率(error rate),精度(accuracy)。
錯誤率好理解,就是m個樣本中,a個樣本分類錯誤,則錯誤率E = a/m 。 精度 就是 1-E。其實很簡單,但是為什么我還要提一提呢,因為機器學(xué)習(xí)里還有很多相關(guān)名詞,例如:準確率,召回率,精確度等等,所以希望大家能清楚認識。
關(guān)鍵詞:經(jīng)驗誤差(empirical error)。
在訓(xùn)練集上,預(yù)測輸出與樣本的真實輸出之間的差異(差異!)稱為經(jīng)驗誤差或訓(xùn)練誤差。
關(guān)鍵詞:泛化誤差(generalization)。
在新樣本上的誤差稱為泛化誤差。
關(guān)鍵詞:過擬合(overfitting)。
剛接觸機器學(xué)習(xí)時候,就碰到過擬合這個很抽象的詞, 當時是說的曲線擬合 。曲線擬合其實就是一個過程。該過程是通過實際曲線上的一些樣本點(成為訓(xùn)練樣本),經(jīng)過一個模型訓(xùn)練,得到一條預(yù)測曲線。(敲黑板:擬合就是一個過程)。那么過擬合就是,擬合過頭了,預(yù)測曲線非常好的適合訓(xùn)練樣本,然而對實際曲線的其他樣本不太適合。推廣一下到分類器(模型)上就是,訓(xùn)練好的分類器對訓(xùn)練樣本很好的分類,但是對測試樣本的分類結(jié)果很糟糕。有過擬合當然有欠擬合啦,欠擬合可以認為是該分類器學(xué)習(xí)能力太差,連在訓(xùn)練樣本上都沒有很好的分類,更不要說在測試樣本上了。
評估方法
關(guān)鍵詞:留出法(hold-out)。
怎么將給定的數(shù)據(jù)集劃分為訓(xùn)練集和測試集呢?常用的方法在這里有介紹。首先介紹的是留出法,其實這種方法在國內(nèi)教材和論文中最常見,就是把數(shù)據(jù)集D劃分為兩個互斥的集合,其中一個是訓(xùn)練集,一個是測試集。書中給出的參考劃分比例是,訓(xùn)練集66.6%~80%。
關(guān)鍵詞:交叉驗證法(cross validation)。
交叉驗證法是競賽中或者比較正式的實驗中用得比較多。什么是交叉驗證呢?其實就是將數(shù)據(jù)集D劃分為k個大小相同的互斥的子集,然后用k-1個子集作為訓(xùn)練,剩下那一個子集作為測試。這樣就需要訓(xùn)練k個模型,得到k個結(jié)果,再取平均即可。這樣的方法通常成為“k折交叉驗證”。書中還給出了k的參考值,:5,10,20。
關(guān)鍵詞:自助法(bootstrapping) ?。
第一次聽說自助法,也從沒在文獻中看到過,自助法主要是用于小樣本!缺點是容易引入估計偏差。具體操作是這樣的,對于m個樣本的數(shù)據(jù)集D,每次隨機挑選D中的一個樣本放到D’中,挑m次,經(jīng)過計算D中有大約36.8%(≈1/e)的樣本未出現(xiàn)在D’中,這樣用D’作為訓(xùn)練集,D\D’(“\”表示集合減法)作為測試集。自助法又稱為可重復(fù)采樣,有放回采樣。(第二次看到這個方法的時候,發(fā)現(xiàn),這不就是bagging抽樣數(shù)據(jù)集的方法嘛,只是這里作為劃分訓(xùn)練集和測試機的方法。)
關(guān)鍵詞:訓(xùn)練集(train set)、驗證集(valid set)、測試集(test set) ?。
一開始接觸機器學(xué)習(xí)只知道訓(xùn)練集和測試集,后來聽到了驗證集這個詞,發(fā)現(xiàn)驗證集和之前所認識的測試集的用法是一樣的,一直就把驗證集和測試集給混淆了。
首先需要知道的是,在工程應(yīng)用中,最終提交給客戶的模型是用盡數(shù)據(jù)集D中的m個樣本訓(xùn)練的模型。也就是說,我們的測試集最終還是要用來訓(xùn)練模型的。之前有說到數(shù)據(jù)集D劃分為訓(xùn)練集和測試集,訓(xùn)練集就是用來訓(xùn)練模型,測試集是用來估計模型在實際應(yīng)用中的泛化能力,而驗證集是用于模型選擇和調(diào)參的。因此,我個人的理解是在研究過程中,驗證集和測試集作用都是一樣的,只是對模型進行一個觀測,觀測訓(xùn)練好的模型的泛化能力。而當在工程應(yīng)用中,驗證集應(yīng)該是從訓(xùn)練集里再劃分出來的一部分作為驗證集,用來選擇模型和調(diào)參的。當調(diào)好之后,再用測試集對該模型進行泛化性能的評估,如果性能OK,再把測試集輸入到模型中訓(xùn)練,最終得到的模型就是提交給用戶的模型。
舉例舉個高三學(xué)生高考的例子吧,
訓(xùn)練集 就是 平時的作業(yè),習(xí)題冊等 驗證集 就是 一模、二模、三模的試題 測試集 就是 高考試題
訓(xùn)練集是給學(xué)生進行學(xué)習(xí)的,提高學(xué)生的能力;驗證集是用來檢驗學(xué)生的學(xué)習(xí)方法,學(xué)習(xí)方向,學(xué)習(xí)方式,是否正確;測試集是最終考察學(xué)生的成績?nèi)绾巍?/p>
不過幸運的是,我們有多次“高考”的機會,只不過,我們不能去分析高考的試題,因為測試集僅僅作為一個驗證。
一般來說,當驗證集和測試集具有同分布的時候(即模擬題和高考題幾乎一樣的時候),在模擬考能拿650分,那么在真實考高中也會在650分左右。
- END -往期精彩回顧
獲取一折本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:
https://t.zsxq.com/662nyZF
本站qq群1003271085。
加入微信群請掃碼進群(如果是博士或者準備讀博士請說明):
