我有一个分类任务,其中有许多预测变量(其中一个是最有参考价值的),并且我正在使用MARS模型来构造我的分类器(我对任何简单的模型都感兴趣,并且使用glms进行说明是没关系)。现在,我在训练数据中存在巨大的班级失衡(每个正样本大约有2700个负样本)。与信息检索任务类似,我更关心预测排名最高的阳性测试样本。因此,Precision Recall曲线上的性能对我很重要。
首先,我只是在训练数据上训练了模型,从而保持了班级的不平衡。我将训练有素的模型显示为红色,最重要的输入显示为蓝色。
培训不平衡数据,评估不平衡数据:
认为班级失衡会导致模型失败,因为学习排名最高的正样本是整个数据集的很小一部分,所以我对正训练点进行了升采样以获得平衡的训练数据集。当我在平衡训练集上绘制性能时,我会获得良好的性能。在PR和ROC曲线中,我训练有素的模型都比输入要好。
训练(上采样的)平衡数据,还评估(上采样的)平衡数据:
但是,如果我使用在平衡数据上训练的模型来预测原始的不平衡训练集,则PR曲线上的性能仍然很差。
培训(上采样的)平衡数据,评估原始不平衡数据:
所以我的问题是:
- 是由于PR曲线的可视化显示我训练的模型(红色)的性能较差,而ROC曲线却由于类的不平衡而导致性能改善的原因吗?
- 重采样/上采样/下采样方法能否解决此问题,从而迫使训练集中于高精度/低召回率区域?
- 还有其他方法可以将培训集中在高精度/低召回率区域吗?