汪老师,您在课里讲过 regularization 一般只用在loss function里 parameter estimation,不会用来做evaluation & prediction. 我有个疑问。如果我用Xgboost build model,里面有L1/L2 normal, 做好hyperparameter tuning之后,想用test set 做prediction时还要专门把l1/l2去掉?这样做不就改变了model?感觉有点奇怪。还是我的理解不正确?谢谢!
Regularization是在loss function里面增加了penalty term, 目的是避免parameter estimation的时候模型"过多地"学习training data里面的规律,从而导致模型generalization能力不够,i.e. overfitting。从这个目的可以看出,regularization是在model training时候对parameter estimation过程的一个修正,即故意让最终求得的parameters不是minimize training loss (因为有一个penalty term存在)。
在evaluation dataset or test dataset上,我们做prediction的时候,我们就是直接用这些parameters构成的model去做预测,而计算evaluation error or testing error的时候,当然就不应该再把penalty term算上了。至于prediction,只是把parameter代入模型,当然不可能有penalty term, 因为模型表达式里面根本不包含penalty term,penalty term是在loss function里面的。