【发布时间】:2021-12-07 14:00:55
【问题描述】:
我们的团队目前正在使用 CatBoost 开发信用评分模型,我们目前的流程是...
- 按时间顺序对数据进行排序以进行超时采样,并将其拆分为训练集、有效集和测试集
- 执行特征工程
- 在火车上执行特征选择和超参数调整(主要是学习率),使用 valid 作为提前停止的评估集
- 对 train 和 valid 的组合执行超参数调整,使用 test 作为提前停止的评估集
- 使用标准指标(RMSE、ROC AUC 等)评估第 4 步的结果
但是,我担心我们可能会过度拟合第 4 步中的测试集。
在第 4 步中,我们是否应该只在训练上重新拟合模型并在不进行调整的情况下有效(即,使用第 3 步中选择的特征和超参数)?
由于我们的超时抽样方案,执行第 4 步的根本目的是根据更新的数据训练模型。
【问题讨论】:
-
我认为测试集永远不会用于执行任何调整,只是在完成所有优化后确定谁是赢家。但是,我并不是真正的专家。好问题。不太关注具体的编程问题,但我认为仍然是主题。也许CrossValidated StackExchange 更适合这个问题。
-
我认为测试集不能用于调优超参数
-
@Trilarion,这也是我的想法,感谢您的推荐——也会在那里转发。
-
@swritchie 请仅在您对此处的答案不满意并且可以添加到问题中为什么不满意的情况下重新发布(例如在此答案的评论中添加详细信息)。否则他们的回答可能完全相同。
标签: python xgboost hyperparameters catboost overfitting-underfitting