訓練集、測試集、驗證集

訓練集:確定模型的參數;
驗證集:確定模型的超參數;(如多項式的次數N)
測試集:評估模型的泛化性能,選擇最優模型;
例子:色澤、根蒂、敲聲來確定好瓜還是壞瓜。將數據分成訓練集、驗證集、測試集
1、決策樹模型,選定初始預剪枝的參數值,用訓練集訓練,生成模型;改變預剪枝參數值若干次,用訓練集訓練,生成若干模型,用驗證集檢驗正確率,確定最優的預剪枝參數值;
2、多項式迴歸,選定多項式次數N,用訓練集訓練,生成模型;改變多項式次數N若干次,用訓練集訓練,生成若干模型,用驗證集驗證正確率,確定最優的多項式次數N。
用測試集分別測試決策時模型和多項式模型,確定兩者的泛化性能,選擇最優模型。
下面的僞代碼寫的很清晰

# split data

data = ...

train, validation, test = split(data)

# tune model hyperparameters

parameters = ...

for params in parameters:

model = fit(train)

skill = evaluate(model, validation)

# evaluate final model for comparison with other models

model = fit(train)

skill = evaluate(model, test)

摘自:http://www.sohu.com/a/159288970_465975

補充:有人說,是不是可以把驗證集和測試集合並起來,即只有訓練集和測試集,然後對於每個超參值,都用訓練集訓練出其餘參數,根據測試集確定最優的超參和模型。
我個人認爲這種方法不好的地方在於:超參的確定和最優模型的確定兩者在同一個步驟裏完成,這樣是有風險的:超參的確定我認爲實際上也是使得擬合最優,本質上還是參數的確定,而把參數確定和泛化性能檢驗合併,則依然存在過擬合的風險,而分成3個集合的話,第一步確定參數,第二部確定超參,第三部確定最優模型,這樣可以把過擬合的風險大大降低,即測試集必須在所有參數(參數和超參數)都確定的條件下才能夠使用,用來評估模型的泛化性能。否則借用測試集確定超參數,那麼評估時,對於泛化性能一定是較好的。
所以對於之前提出的問題,爲什麼k折交叉驗證可以沒有驗證集,我認爲可能是因爲進行重抽樣後,泛化性能本身就可以得到檢驗了,因此驗證集和測試集只需要一個了。

————————————————————————————————————————————
最近看了《深度學習》一書中對此問題的闡述,講得還算清晰。

以最簡單的廣義線性迴歸爲例,有一個超參數:即多項式的次數,作爲容量超參數。像lasso等迴歸還有另一個超參數,控制權重衰減程度的 λ是另一個超參數。有時一個選項被設爲學習算法不用學習的超參數,是因爲它太難優化了。更多的情況是,該選項必須是超參數,因爲它不適合在訓練集上學習。這適用於控制模型容量的所有超參數。如果在訓練集上學習超參數,這些超參數總是趨向於最大可能的模型容量,導致過擬合(參考圖5.3 )。例如,相比低次多項式和正的權重衰減設定,更高次的多項式和權重衰減參數設定 λ = 0 總能在訓練集上更好地擬合。爲了解決這個問題,我們需要一個訓練算法觀測不到的 驗證集(validation set)樣本。
早先我們討論過和訓練數據相同分佈的樣本組成的測試集,它可以用來估計學習過程完成之後的學習器的泛化誤差。其重點在於測試樣本不能以任何形式參與到模型的選擇中,包括設定超參數。基於這個原因,測試集中的樣本不能用於驗證集。因此,我們總是從訓練數據中構建驗證集。特別地,我們將訓練數據分成兩個不相交的子集。其中一個用於學習參數。另一個作爲驗證集,用於估計訓練中或訓練後的泛化誤差,更新超參數。用於學習參數的數據子集通常仍被稱爲訓練集,儘管這會和整個訓練過程用到的更大的數據集相混。用於挑選超參數的數據子集被稱爲 驗證集(validation set)。通常, 80% 的訓練數據用於訓練, 20% 用於驗證。由於驗證集是用來 ‘‘訓練’’超參數的,儘管驗證集的誤差通常會比訓練集誤差小,驗證集會低估泛化誤差。所有超參數優化完成之後,泛化誤差可能會通過測試集來估計。
在實際中,當相同的測試集已在很多年中重複地用於評估不同算法的性能,並且考慮學術界在該測試集上的各種嘗試,我們最後可能也會對測試集有着樂觀的估計。基準會因之變得陳舊,而不能反映系統的真實性能。值得慶幸的是,學術界往往會移到新的(通常會更巨大、更具挑戰性)基準數據集上。
——摘自《深度學習》

通過上面的闡述應該能對訓練集、驗證集和測試集有一個比較好的瞭解了。

————————————————————————————————————————
參考文獻:
伊恩·古德費洛,約書亞·本吉奧,亞倫·庫維爾.《深度學習》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章