类不平衡下的精确召回曲线的优化


30

我有一个分类任务,其中有许多预测变量(其中一个是最有参考价值的),并且我正在使用MARS模型来构造我的分类器(我对任何简单的模型都感兴趣,并且使用glms进行说明是没关系)。现在,我在训练数据中存在巨大的班级失衡(每个正样本大约有2700个负样本)。与信息检索任务类似,我更关心预测排名最高的阳性测试样本。因此,Precision Recall曲线上的性能对我很重要。

首先,我只是在训练数据上训练了模型,从而保持了班级的不平衡。我将训练有素的模型显示为红色,最重要的输入显示为蓝色。

培训不平衡数据,评估不平衡数据

公关培训不均衡 ROC不平衡训练

认为班级失衡会导致模型失败,因为学习排名最高的正样本是整个数据集的很小一部分,所以我对正训练点进行了升采样以获得平衡的训练数据集。当我在平衡训练集上绘制性能时,我会获得良好的性能。在PR和ROC曲线中,我训练有素的模型都比输入要好。

训练(上采样的)平衡数据,还评估(上采样的)平衡数据:

PR用于平衡训练,在平衡数据集上可视化 ROC用于平衡训练,在平衡数据集上可视化

但是,如果我使用在平衡数据上训练的模型来预测原始的不平衡训练集,则PR曲线上的性能仍然很差。

培训(上采样的)平衡数据,评估原始不平衡数据:

PR进行平衡的训练,在原始的不平衡数据集中可视化 用于平衡训练的ROC,可在原始的不平衡数据集中可视化

所以我的问题是:

  1. 是由于PR曲线的可视化显示我训练的模型(红色)的性能较差,而ROC曲线却由于类的不平衡而导致性能改善的原因吗?
  2. 重采样/上采样/下采样方法能否解决此问题,从而迫使训练集中于高精度/低召回率区域?
  3. 还有其他方法可以将培训集中在高精度/低召回率区域吗?

您能否编辑您的问题以阐明对训练集计算哪些度量以及对保留的数据进行哪些度量?
杰克·坦纳

@JackTanner,目前所有内容都根据训练集计算得出。由于模型没有那么多参数,并且训练集中的样本数量巨大,因此我不必担心过度拟合。此外,我想确保自己在训练组上表现良好,然后才能在测试组中期望。
highBandWidth 2012年

您在学习算法中控制着什么旋钮来评估不同召回级别的准确性?您是否尝试过扩展功能集,例如通过功能组合和转换?
杰克·坦纳

@JackTanner,我拥有的模型(具有logit功能的MARS)给出的输出范围为0到1,类似于logistic回归。基本上是相同的,但包含更多功能。为了获得不同召回率的精确度,我只是在不同点设置了阈值。我只是使用标准方法从排名列表中计算PR或ROC。
highBandWidth 2012年

Answers:


15
  1. ROC曲线对班级失衡的变化不敏感。参见Fawcett(2004)“ ROC图:研究人员的注意事项和实践注意事项”。
  2. 对低频类别进行上采样是一种合理的方法。
  3. 还有许多其他方法可以解决阶级失衡问题。提神和装袋是我想到的两种技术。这似乎是最近的一项相关研究:将增强和装袋技术与嘈杂的数据和不平衡的数据进行比较

PS整洁的问题; 我很想知道结果如何。



1

我想提请注意以下事实:最后2个实验实际上是在ALMOST THE SAME数据集上使用SAME模型。性能上的差异不是模型上的差异,这可以通过验证数据集的不同分布以及所使用的特定METRICS的属性-精度和召回率来进行解释,而高度依赖于该分布。为了更详细地说明这一点,如果您从初始验证数据集中获取了X个不同的条目,并为升级后的数据集复制了少数类,那么您的模型将对升级或不均衡的X个条目(正确或不正确)做出相同的预测验证数据集。唯一的区别是,对于每个假阳性,初始数据集中的真实阳性更少(因此,精度较低),而在平衡数据集中的真实阳性更多(这是由于通常数据集中存在更多阳性实例) 。这就是为什么说Precision和Recall对偏斜敏感的原因。另一方面,正如您的实验所示,ROC不变。也可以通过查看其定义来观察。因此,据说ROC对倾斜不敏感。

我还没有对第2点和第3点有好的答案,因为我自己正在寻找那些:)


0

假设上采样的正样本与“原始集合”具有“相同的分布”。随着阳性样本数量的增加,几乎没有变化

1)“所有阈值”的TruePositives(TP)数量增加,结果,所有阈值的TP /(TP + FP)和TP /(TP + FN)之比增加。因此,中华人民共和国的面积在增加。

2)预期精度(也称为“哑”模型的精度)从〜1/2700(原始设置)增加到〜1/2(在“理想”平衡的情况下)。假设您的模型表现更好,那么“哑”模型意味着曲线下的面积在“原始集合”中将大于0.00037,在理想平衡集合中将大于0.5。

3)在按比例放大的数据集上训练模型时,某些模型可能“过度拟合”正样本。

关于ROC曲线,众所周知,ROC曲线几乎不受类别分布变化的影响(升级对FPR的影响很小,而对TPR的影响则很小)。

关于专注于高精度/低召回率区域,您可以针对成本函数进行优化,在该成本函数中,误报率要高于误报率。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.