1. 程式人生 > >機器學習——什麼時候需要顯式的劃分出“驗證集”

機器學習——什麼時候需要顯式的劃分出“驗證集”

       所謂的顯式的劃分出“驗證集”,其實就是顯式的將資料集劃分為“訓練集”、“驗證集”、“測試集”。但是假如要使用k折交叉驗證來為模型進行超引數調優而言,是不需要顯式的將資料集劃分出“驗證集”的。

       當資料集的整體比較小時,常常需要使用k折交叉驗證才能更加精確的評估一個模型的效能指標(因為k折交叉驗證可以解決資料分佈的敏感性問題),從而為模型選擇比較優的超引數。使用k折交叉驗證是不需要顯式的從資料集中劃分出“驗證集”的,直接將資料集劃分為“訓練集”和“測試集”即可,在訓練集上進行交叉驗證從而對模型的超引數進行尋優。得到模型的最優超引數之後,使用訓練集餵給模型從而訓練出分類器,最後使用測試集測試分類器的效能。

關於使用交叉驗證之後,是否還需要單獨分出測試集問題?

       思路一,不使用獨立的測試,直接在整個資料上進行k折交叉驗證,從而得到模型的最優超引數。同時將k折交叉驗證的預測精度作為模型的預測精度。

       思路二、將資料分為訓練集和測試集兩部分,在訓練集上進行k折交叉從而得到模型的最優超引數。然後使用整個訓練集結合最優超引數訓練出分類器。最後使用測試模型在測試集上的預測精度。

       兩種思路沒有本質的對錯之分,但是本人更加推薦思路二,思路二使用了測試集,該集合和模型本身完全獨立、無關,顯然能夠更好的評估模型的泛化能力。思路一中使用k折交叉驗證的預測精度作為模型的預測精度,是存在誤差的,交叉驗證的預測精度通常高於模型真實的預測精度。