您对一般分类中的过采样,特别是 SMOTE 算法有何看法?为什么我们不只是应用成本/惩罚来调整类数据的不平衡和任何不平衡的错误成本?就我而言,对未来一组实验单元的预测准确性是最终衡量标准。
供参考,SMOTE 论文:http ://www.jair.org/papers/paper953.html
您对一般分类中的过采样,特别是 SMOTE 算法有何看法?为什么我们不只是应用成本/惩罚来调整类数据的不平衡和任何不平衡的错误成本?就我而言,对未来一组实验单元的预测准确性是最终衡量标准。
供参考,SMOTE 论文:http ://www.jair.org/papers/paper953.html
{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]。虽然这些技术已与过采样和欠采样进行了比较,但它们通常没有与成本敏感的学习算法进行比较。这在未来值得研究。
{2} 也值得一读:
在这项研究中,我们系统地研究了类别不平衡对卷积神经网络 (CNN) 分类性能的影响,并比较了解决该问题的常用方法。类不平衡是经典机器学习中已全面研究的常见问题,但在深度学习的背景下可用的系统研究非常有限。
参考: