python - CatBoost:我们是否过度拟合?

标签 python xgboost hyperparameters catboost overfitting-underfitting

我们的团队目前正在使用 CatBoost 来开发信用评分模型,我们当前的流程是...

  1. 按时间顺序对数据进行排序以进行超时采样,并将其分为训练集、有效集和测试集
  2. 执行特征工程
  3. 在列车上执行特征选择和超参数调整(主要是学习率),使用 valid 作为早期停止的评估集
  4. 对训练集和有效集进行超参数调优,使用测试集作为早期停止的评估集
  5. 使用标准指标(RMSE、ROC AUC 等)评估第 4 步的结果

但是,我担心我们可能会过度拟合步骤 #4 中的测试集。

在第 4 步中,我们是否应该在训练中重新拟合模型并使其在不进行调整的情况下有效(即使用第 3 步中选定的特征和超参数)?

由于我们的采样方案过时,所以进行第 4 步的动机是根据更新的数据训练模型。

最佳答案

第 4 步不属于机器学习的最佳实践。

创建测试集时,您需要将其放在一边,仅在最后使用它来评估模型在预测方面的成功程度。不要使用测试集来通知超参数调整!如果这样做,您的数据就会过度拟合。

尝试使用cross-validation相反:

enter image description here

关于python - CatBoost:我们是否过度拟合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69651225/

相关文章:

python - 如何使用RDKit计算SMILE结构列表的分子指纹和相似度?

python - 在 python 中使用 % 运算符的 %s 可变长度

python - 如何更改 xgboost.plot_importance 中绘图的大小?

python - 如果超参数调整的影响很小,我该如何改进我的 XGBoost 模型?

machine-learning - 在小数据集上使用 GridSearch 并将结果应用于大数据集是一个好主意吗?

python - 使用 Python 在 PostgreSQL 数据库上进行快速复杂的 SQL 查询

python - 在 Heroku 上运行 Telethon

r - 在 R 中调整 XGboost 参数

python - ImportError : No module named numpy. distutils.core(Ubuntu xgboost 安装)

machine-learning - 超参数优化随机搜索的改进