比方說,用100k條數據,有兩個思路
1. 用這100k條數據做k-fold交叉驗證,來調模型參數
2. 先隨機划分出70k條數據做訓練集用來根據交叉驗證調參數,調好之后再用剩下的30k條數據做測試集
【答】
雖然這兩個都沒有錯對之分,但是在數據量允許的情況下,更建議第2個思路。
對於思路1,如果用交叉驗證的預測誤差作為模型的預測誤差,這是有偏差的。因為交叉驗證的誤差通常是小於真實測試誤差的。
思路2是推薦的。因為測試集一定要和模型本身獨立、無關,測試集不能參與模型的訓練。
引申開來,還有第二層意思,你利用70k的數據訓練完模型后,不能根據在30k測試集上的表現再回去重新調整參數,因為一旦你這樣做了,你就很可能會過擬合,你的交叉驗證也就沒有意義了。
