1. 程式人生 > >如果使用交叉驗證,是否還需要單獨分出測試集?

如果使用交叉驗證,是否還需要單獨分出測試集?

驗證 spa 還需 情況下 單獨 預測 ever log style

比方說,用100k條數據,有兩個思路

1. 用這100k條數據做k-fold交叉驗證,來調模型參數

2. 先隨機劃分出70k條數據做訓練集用來根據交叉驗證調參數,調好之後再用剩下的30k條數據做測試集

【答】

雖然這兩個都沒有錯對之分,但是在數據量允許的情況下,更建議第2個思路。

對於思路1,如果用交叉驗證的預測誤差作為模型的預測誤差,這是有偏差的。因為交叉驗證的誤差通常是小於真實測試誤差的。

思路2是推薦的。因為測試集一定要和模型本身獨立、無關,測試集不能參與模型的訓練。

引申開來,還有第二層意思,你利用70k的數據訓練完模型後,不能根據在30k測試集上的表現再回去重新調整參數,因為一旦你這樣做了,你就很可能會過擬合,你的交叉驗證也就沒有意義了。

如果使用交叉驗證,是否還需要單獨分出測試集?