訓練集用於模型參數,測試集用於估計模型對樣本的泛化誤差,驗證集用於“訓練”模型的超參數。
我們知道一個機器學習模型通常包括兩個部分的參數:模型參數和超參數。其中超參數是用於控制模型行為的超參數,這些參數不是通過模型本身學習而來的。例如多項式回歸模型里面,多項式的次數,學習速率是超參數。這些超參數不能由模型本身訓練得到,是因為模型會傾向把參數訓練的過大或者過小,從而極容易導致過擬合。例如多項式回歸模型里面。如果讓模型本身去訓練多項式的次數,那么模型會選擇高次多項式,因為這樣做誤差可以取到特別小,極端情況下,N個點的多項式回歸會選擇次數N。然而這些超參數,也會有不同的選擇,例如學習速率可以選擇0.1, 0.01, 1, 10···那么我們怎么知道超參數的某個值比另外一個好呢?一個很自然的想法是我們可以選擇不同的超參數值,然后跑在同一個訓練集上再看看最后的結果。