具有严重不平衡类的二进制分类


52

我有一个数据集(功能,二进制输出0或1),但是1很少发生,因此只要始终预测0,我就可以得到70%到90%的准确度(取决于我查看的特定数据) )。机器学习方法给我的精度差不多,我觉得在这种情况下应该有一些标准方法可以应用,这将在明显的预测规则上提高准确性。


3
我发现本文对这个主题非常有帮助:svds.com/learning-imbalanced-classes
J. O'Brien

@ J.O'BrienAntognini这是一篇非常好的文章!
金华王

Answers:


30

hxd1011和Frank都是正确的(+1)。从本质上讲,重采样和/或对成本敏感的学习是解决数据不平衡问题的两种主要方法。第三是使用内核方法,这些方法有时可能不会受到类不平衡的影响。让我强调,没有解决方案。根据定义,您有一个类别在样本中未充分代表。

综上所述,我相信您会发现SMOTEROSE算法非常有用。SMOTE 有效地使用最近邻方法来排除多数派成员,同时以类似方式创建少数派的综合示例。ROSE尝试使用平滑的引导程序方法来创建两个类的基础分布的估计,并为综合示例进行抽样。两者都可以通过R,SMOTE的DMwR软件包和ROSE的同名软件包轻松获得。SMOTE和ROSE两者都导致训练数据集小于原始数据集。k

我可能会争辩说,对于数据不平衡的情况,更好(或更坏)的度量标准是使用Cohen的k和/或曲线下的Receiver工作特性的Area。Cohen的kappa直接控制预期的准确性,AUC是灵敏度和特异性的函数,曲线对班级比例的差异不敏感。同样,请注意,这些只是应与大量盐一起使用的指标。理想情况下,您应该考虑到正确和错误分类所传达的收益和成本,使它们适应您的特定问题。我发现看抬曲线在这件事上实际上相当有用。无论采用哪种指标,都应尝试使用单独的测试来评估算法的性能;正是由于类别的不平衡,过度拟合的可能性更大,因此样本外测试至关重要。

关于此事的最新最受欢迎的论文可能是He和Garcia的《从失衡数据中学习》。它很好地概述了我自己和其他答案提出的观点。另外,我相信Max Kuhn作为插入符号软件包的一部分介绍的有关类不平衡的子采样的演练是获得有关欠采样/过采样以及合成数据创建如何度量的结构示例的绝佳资源。互相反对。


第三个比较流行(但又不太合适)的度量是“精确调用”曲线的“曲线下面积”。戴维斯与詹姆斯(Davis&James),2006年的论文被认为是该问题的经典之作。CV具有良好的线程太多。最近,我看到了一篇论文,标题有点含糊不清:“ 在评估不平衡数据集上的二进制分类器时,精确召回图比ROC图更具信息性 ”,所以有人可能也想检查一下。
恢复单胞菌usεr11852说,

1
对于各种数据重采样技术的python实现,我建议使用imbalance
Vadim Smolyakov

对于高度不平衡的班级分配,AUPRC比AUROC提供更多信息。此处未包含详细信息,因为这是注释。在许多资料中,有一个在这里
朱巴卜

15

首先,不平衡数据的评估指标将不准确。假设您正在进行欺诈检测,那么99.9%的数据不是欺诈。我们可以轻松地制作出具有99.9%准确性的虚拟模型。(只需预测所有非欺诈数据)。

您想将评估指标从准确性更改为其他指标,例如F1得分精度和召回率。在第二个链接中,我提供了。有关精确召回为何有效的细节和直觉。

对于高度不平衡的数据,建立模型可能非常困难。您可以使用加权损失函数或仅对一个类别建模。(例如一类SVM或适合多元高斯(如我之前提供的连结)。


2
+1。关于一类SVM的一个很好的例子和很好的提及。我认为,尽管得分有点过于用力,却完全忽略了真正的负面因素。F1
恢复单胞菌usεr11852说,

“精确和召回”的链接已死?
杰森

13

班级不平衡问题可以通过对成本敏感的学习或重新采样来解决。请参阅成本敏感型学习与抽样的优缺点,复制如下:


{1}列出了成本敏感型学习与抽样学习的优缺点:

2.2采样

过采样和欠采样可用于更改训练数据的类分布,并且两种方法都已用于处理类不平衡[1、2、3、6、10、11]。更改训练数据的类分布有助于使用高度偏斜的数据集进行学习的原因是,它有效地增加了非均匀错误分类成本。例如,如果人们改变了训练集的类别分布,以使正样本与负样本的比率从1:1变为2:1,那么人们实际上已经将误分类成本比率指定为2:1。改变训练数据的类别分布和改变误分类成本比率之间的这种等效关系是众所周知的,并由Elkan [9]正式描述。

与使用采样来实施成本敏感型学习相关的已知缺点。欠采样缺点是它会丢弃可能有用的数据。从我们的角度来看,过采样的主要缺点是,通过对现有示例进行精确复制,可能会导致过拟合。实际上,对于过度采样,学习者通常会生成一个分类规则来覆盖单个重复的示例。过度采样的第二个缺点是增加了训练示例的数量,从而增加了学习时间

2.3为什么要使用采样?

考虑到采样的缺点,值得一问的是,为什么有人会使用它,而不是使用成本敏感的学习算法来处理具有偏斜的类分布和不均匀分类错误的数据。有几个原因。最明显的原因是,并非所有学习算法都对成本敏感,因此,使用采样的基于包装器的方法是唯一的选择。虽然今天的情况肯定比过去不那么正确,但是许多学习算法(例如C4.5)仍然不能直接处理学习过程中的成本。

使用采样的第二个原因是,许多高度偏斜的数据集非常庞大,并且必须减小训练集的大小才能使学习可行。在这种情况下,低采样似乎是一种合理且有效的策略。在本文中,我们不考虑减少训练集大小的需要。但是,我们要指出的是,如果需要丢弃一些训练数据,为了减少训练集的大小到所需的大小,而放弃一些多数班级的例子,然后采用成本较高的方法,可能仍然是有益的。灵敏的学习算法,使丢弃的训练数据量最小化。

可能导致使用采样而非成本敏感型学习算法的最终原因是,错误分类成本通常是未知的。但是,这不是在成本敏感型学习算法上使用抽样的正当理由,因为与抽样有关的问题类似-最终训练数据的类分布应该是什么?如果此成本信息未知,则可以使用诸如ROC曲线下面积之类的度量来衡量分类器的性能,然后两种方法都可以凭经验确定适当的成本比率/类别分布。

他们还进行了一系列实验,但尚无定论:

根据所有数据集的结果,在成本敏感型学习,过采样和欠采样之间没有确定的赢家

然后,他们试图了解数据集中的哪些标准可能暗示着哪种技术更合适。

他们还指出,SMOTE可能会带来一些增强:

人们已经进行了许多改进来提高采样的有效性。其中一些增强功能包括:在过采样[5-> SMOTE]时引入新的“合成”示例;在欠采样[11]时删除不太有用的多数类示例;在欠采样时使用多个子样本,例如至少要使用每个样本。子样本[3]。虽然已将这些技术与过采样和欠采样进行了比较,但通常没有将它们与对成本敏感的学习算法进行比较。将来值得研究。


{1} Weiss,Gary M.,Kate McCarthy和Bibi Zabar。“成本敏感型学习与抽样:哪种方法最适合处理错误成本不相等的不平衡类?”。DMIN 7(2007):35-41。https://scholar.google.com/scholar?cluster=10779872536070567255&hl=zh-CN&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf


1
因此,总结一下链接:哪种方法更好的结果尚无定论,并且使用欠采样/过采样更容易。对?
LazyCat

1
@LazyCat对。
Franck Dernoncourt,2016年

是的,该平台有局限性。但是其中许多功能也是。例如,我假设如果这样一个冗长而详细的答案可以充分回答两个问题,那么这些问题必须是重复的。 而且,如果它们不是重复的,那么应该可以以有意义的方式改变答案,因此它们不只是复制粘贴的。在这种情况下应采取什么措施?(cc @gung)
呜呜叫声

@whuber另一个问题已经关闭:-)
Franck Dernoncourt

1
好的-这是一个很有说服力的论点!
ub

6

这个查询的几个答案已经提供了几种不同的方法,都有效。这项建议来自哈佛大学著名政治学家加里·金(Gary King)的论文和相关软件。他与他人合着了《稀有事件数据中的逻辑回归》一文,提供了一些非常有说服力的解决方案。

这是摘要:

我们研究稀有事件数据,二元因变量比零(“非事件”)少几十到数千倍(事件,如战争,否决权,政治活动或流行病学感染等事件)。在许多文献中,这些变量已被证明难以解释和预测,这个问题似乎至少有两个来源。首先,流行的统计程序(例如逻辑回归)可能会严重低估稀有事件的可能性。我们建议采取纠正措施,使其优于现有方法,并以与文献中报道的某些估计影响一样多的方式更改绝对风险和相对风险的估计。其次,对于稀有事件数据,常用的数据收集策略效率很低。由于担心收集事件少的数据,导致收集的数据数量众多,但解释变量相对较少且度量不佳,例如在国际冲突数据中有超过25万个双峰的情况下,其中只有少数处于战争中。事实证明,存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。以及测量性差的解释变量,例如国际冲突数据中有超过25万个dyad的变量,其中只有少数处于战争状态。事实证明,存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。以及测量性差的解释变量,例如国际冲突数据中有超过25万个dyad的变量,其中只有少数处于战争状态。事实证明,存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。

这是论文的链接... http://gking.harvard.edu/files/abs/0s-abs.shtml


谢谢-如果您阅读了这篇论文,除了上面建议的欠采样之外,他们是否还提出了其他重要建议?
LazyCat

4
这是一篇好论文,我已经读了不止一次!(+1)我想尽管您应该指出论文也对推理感兴趣。这就是为什么与GLM相比,GBM对政治科学家的用处不大。例如,如果使用树方法:“ ...两种递归分区算法可以达到相同的预测精度,但是同时表示结构上不同的回归关系,即不同的模型,因此可能导致对影响的不同结论。关于响应的某些协变量。 ”(Hothorn et al。2006)
us11r说Reinstate Monic

2

为具有不平衡类的数据集开发分类器是机器学习中的常见问题。在这种情况下,基于密度的方法可能具有优于“传统分类器”的优点。

p^(x|yC)CC={x:yi=0}

xy^(x)Cy^(x)C

您可以参考以下论文:

“用于新颖性检测的最小卷集的可计算插件估计器”,C。Park,J。Huang和Y. Ding,运筹学,58(5),2013年。


2

在这种情况下,“异常检测”是一种有用的方法。这基本上是Rodrigo在他的答案中描述的内容,其中您确定培训课程的统计资料,并设置一个概率阈值,超过该阈值确定将来的测量结果不属于该课程。这是一个视频教程,应该可以帮助您入门。一旦您了解了这一点,我建议您查找内核密度估计值。

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.