在训练 NGBoost 模型时,我得到了:
[iter 0] loss=-2.2911 val_loss=-2.3309 scale=2.0000 norm=1.0976
[iter 100] loss=-3.3288 val_loss=-2.8532 scale=2.0000 norm=0.7841
[iter 200] loss=-4.0889 val_loss=-1.5779 scale=2.0000 norm=0.7544
[iter 300] loss=-4.8400 val_loss=8.8107 scale=2.0000 norm=0.6710
[iter 400] loss=-5.4463 val_loss=51.7171 scale=2.0000 norm=0.5999
看起来在迭代 100 和 200 之间发生了过拟合。最好的(val_loss 明智的)模型是否保存了,或者我是否得到了最后一个报告的模型(有大量的过拟合,训练损失为 -5.4463,验证损失为 51.7171)?
如果我真的得到了过度拟合的模型,我该如何根据验证分数引入提前停止(或模型保存)?