具有强烈不平衡类的二元分类

机器算法验证 机器学习 分类 二进制数据 不平衡类
2022-01-20 04:54:33

我有一个(特征,二进制输出 0 或 1)形式的数据集,但 1 很少发生,所以只要总是预测 0,我的准确率就在 70% 到 90% 之间(取决于我查看的特定数据)。ML 方法给我的准确度大致相同,我觉得应该有一些标准方法适用于这种情况,这将提高明显预测规则的准确度。

4个回答

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

说了上面我相信你会发现算法SMOTEROSE非常有用。SMOTE有效地使用最近邻方法来排除多数类的成员,同时以类似的方式创建少数类的合成示例。ROSE 尝试使用平滑引导方法创建两个类的基本分布的估计值,并对它们进行采样以用于合成示例。两者都可以在 R、DMwR 包中的SMOTE同名包中的 ROSE 中轻松获得。SMOTE 和 ROSE 都会导致训练数据集小于原始数据集。k

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

最近关于这个问题最受欢迎的论文可能是He 和 Garcia从不平衡数据中学习。它很好地概述了我自己和其他答案中提出的观点。此外,我相信Max Kuhn 作为插入符号包的一部分提供的关于类不平衡的子采样的演练是一个很好的资源,可以获取一个结构示例,说明如何对欠采样/过采样以及合成数据创建进行测量互相反对。

首先,不平衡数据的评估指标不会是准确性。假设您正在进行欺诈检测,那么您 99.9% 的数据都不是欺诈。我们可以很容易地制作一个准确率达到 99.9% 的虚拟模型。(只是预测所有数据非欺诈)。

您希望将评估指标从准确度更改为其他值,例如F1 分数准确率和召回率在我提供的第二个链接中。有关于为什么精确召回会起作用的细节和直觉。

对于高度不平衡的数据,构建模型可能非常具有挑战性。您可以使用加权损失函数或仅对一类进行建模。例如一类 SVM或拟合多元高斯(如我之前提供的链接。)

类别不平衡问题可以通过成本敏感的学习或重采样来解决。查看成本敏感型学习与抽样的优缺点,复制粘贴如下:


{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=en&as_sdt=0,22https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf

这个查询的几个答案已经提供了几种不同的方法,都是有效的。该建议来自哈佛大学著名政治学家 Gary King 的论文和相关软件。他与人合着了一篇题为“罕见事件数据中的逻辑回归”的论文,该论文提供了一些相当有说服力的解决方案。

这是摘要:

我们研究罕见事件数据,二进制因变量(事件,如战争、否决、政治激进主义或流行病学感染)比零(“非事件”)少几十到几千倍。在许多文献中,这些变量已被证明难以解释和预测,这个问题似乎至少有两个来源。首先,流行的统计程序,例如逻辑回归,可能会严重低估罕见事件的概率。我们建议进行优于现有方法的修正,并将绝对和相对风险的估计值改变与文献中报告的一些估计影响一样多。其次,常用的数据收集策略对于罕见事件数据效率极低。对收集事件太少的数据的恐惧导致数据收集具有大量观察结果,但解释变量相对较少且测量不佳,例如在超过 25 万对的国际冲突数据中,其中只有少数处于战争状态。事实证明,存在更有效的抽样设计来进行有效推理,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行抽样。这使学者能够节省多达 99% 的(非固定)数据收集成本或收集更有意义的解释变量。我们提供将这两种结果联系起来的方法,使两种类型的校正能够同时工作,以及实现所开发方法的软件。以及测量不充分的解释性变量,例如国际冲突数据中超过 25 万对,其中只有少数处于战争状态。事实证明,存在更有效的抽样设计来进行有效推理,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行抽样。这使学者能够节省多达 99% 的(非固定)数据收集成本或收集更有意义的解释变量。我们提供将这两种结果联系起来的方法,使两种类型的校正能够同时工作,以及实现所开发方法的软件。以及测量不充分的解释性变量,例如国际冲突数据中超过 25 万对,其中只有少数处于战争状态。事实证明,存在更有效的抽样设计来进行有效推理,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行抽样。这使学者能够节省多达 99% 的(非固定)数据收集成本或收集更有意义的解释变量。我们提供将这两种结果联系起来的方法,使两种类型的校正能够同时工作,以及实现所开发方法的软件。存在更有效的抽样设计来做出有效的推论,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行抽样。这使学者能够节省多达 99% 的(非固定)数据收集成本或收集更有意义的解释变量。我们提供将这两种结果联系起来的方法,使两种类型的校正能够同时工作,以及实现所开发方法的软件。存在更有效的抽样设计来做出有效的推论,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行抽样。这使学者能够节省多达 99% 的(非固定)数据收集成本或收集更有意义的解释变量。我们提供将这两种结果联系起来的方法,使两种类型的校正能够同时工作,以及实现所开发方法的软件。

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