Answers:
hxd1011和Frank都是正确的(+1)。从本质上讲,重采样和/或对成本敏感的学习是解决数据不平衡问题的两种主要方法。第三是使用内核方法,这些方法有时可能不会受到类不平衡的影响。让我强调,没有解决方案。根据定义,您有一个类别在样本中未充分代表。
综上所述,我相信您会发现SMOTE和ROSE算法非常有用。SMOTE 有效地使用最近邻方法来排除多数派成员,同时以类似方式创建少数派的综合示例。ROSE尝试使用平滑的引导程序方法来创建两个类的基础分布的估计,并为综合示例进行抽样。两者都可以通过R,SMOTE的DMwR软件包和ROSE的同名软件包轻松获得。SMOTE和ROSE两者都导致训练数据集小于原始数据集。
我可能会争辩说,对于数据不平衡的情况,更好(或更坏)的度量标准是使用Cohen的和/或曲线下的Receiver工作特性的Area。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=zh-CN&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf
这个查询的几个答案已经提供了几种不同的方法,都有效。这项建议来自哈佛大学著名政治学家加里·金(Gary King)的论文和相关软件。他与他人合着了《稀有事件数据中的逻辑回归》一文,提供了一些非常有说服力的解决方案。
这是摘要:
我们研究稀有事件数据,二元因变量比零(“非事件”)少几十到数千倍(事件,如战争,否决权,政治活动或流行病学感染等事件)。在许多文献中,这些变量已被证明难以解释和预测,这个问题似乎至少有两个来源。首先,流行的统计程序(例如逻辑回归)可能会严重低估稀有事件的可能性。我们建议采取纠正措施,使其优于现有方法,并以与文献中报道的某些估计影响一样多的方式更改绝对风险和相对风险的估计。其次,对于稀有事件数据,常用的数据收集策略效率很低。由于担心收集事件少的数据,导致收集的数据数量众多,但解释变量相对较少且度量不佳,例如在国际冲突数据中有超过25万个双峰的情况下,其中只有少数处于战争中。事实证明,存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。以及测量性差的解释变量,例如国际冲突数据中有超过25万个dyad的变量,其中只有少数处于战争状态。事实证明,存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。以及测量性差的解释变量,例如国际冲突数据中有超过25万个dyad的变量,其中只有少数处于战争状态。事实证明,存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。存在进行有效推断的更有效的采样设计,例如对所有可变事件(例如战争)和一小部分非事件(和平)进行采样。这使学者们可以节省多达99%(非固定的)数据收集成本,或者收集更多有意义的解释变量。我们提供了链接这两个结果的方法,使两种类型的校正能够同时进行,并且提供了实现所开发方法的软件。