使用过采样/不平衡数据优化模型的决策阈值

数据挖掘 交叉验证 模型选择 打击 网格搜索
2022-02-28 03:49:34

我正在开发一个具有高度不平衡数据集(0.7% Minority 类)的模型。为了弥补不平衡,我打算使用不平衡学习库中的算法进行过采样。我有一个工作流程,我想分享并就我是否朝着正确的方向前进,或者我错过了什么。

  1. 拆分训练/测试/验证
  2. 为 GridSearch 设置管道并优化超参数(管道只会对训练折叠进行过采样)
  3. 评分指标将是 AUC,因为此时训练集是平衡的
  4. 由于模型是在平衡数据集上训练的,它可能会非常保守并且预测很多误报
  5. 考虑到上述情况,模型将被校准以具有更准确的概率(CalibratedClassifierCV)
  6. 在验证集上查看具有校准概率阈值的精度/召回曲线并确定最佳点

这个过程听起来合理吗?将不胜感激任何反馈/建议

1个回答

我不确定最后一点是否是指验证集而不是测试集。

这是我的建议:1-了解数据不平衡的影响。让我们从了解整体准确率和平均类准确率之间的差异开始。如果你只关心整体的准确性,那么数据不平衡不是问题,否则你需要处理数据不平衡的问题。

2-训练集的数据分布可以通过使用过采样来改变。欠采样、合成采样、数据增强……等等。但是你不应该改变验证集和测试集的数据分布。

3-使用训练集进行训练,验证集用于调整超参数,但不要接触测试集

4-仅使用测试集进行测试

5-您可以通过控制数据分布来控制模型的行为,您不需要完全平衡的数据,您可以通过不使用阈值来控制模型行为的方式来控制过采样过程。