监督机器学习中的类不平衡

机器算法验证 机器学习 不平衡类 监督学习
2022-02-02 07:49:23

这是一个笼统的问题,并不特定于任何方法或数据集。我们如何处理监督机器学习中的类不平衡问题,即数据集中 0 的数量约为 90%,1 的数量约为 10%。我们如何优化训练分类器。

我遵循的一种方法是采样以使数据集平衡,然后训练分类器并对多个样本重复此操作。

我觉得这是随机的,是否有任何框架来解决这类问题。

4个回答

有许多框架和方法。这是一个反复出现的问题。

例子:

  • 欠采样选择零集的子样本,使其大小与一集匹配。除非您使用更复杂的框架,否则会明显丢失信息(例如,我会将第一组拆分为 9 个较小的互斥子集,在每个子集上训练一个模型并集成模型)。
  • 过采样生产人造的,直到比例为50%/50%。我以前的雇主默认使用这个。这有很多框架(我认为SMOTE是最流行的,但我更喜欢像Noisy PCA这样更简单的技巧)。
  • 一节课学习假设您的数据有一些真实的点(那些),并且大量实际上不存在的随机噪声泄漏到数据集中(任何不是一个都是噪声)。使用算法对数据进行降噪,而不是使用分类算法。
  • 成本敏感型培训使用非对称成本函数人为地平衡训练过程。

一些点燃的评论,按照技术复杂性\细节级别的递增顺序:

哦,顺便说一句,90%/10% 不是不平衡的。卡交易欺诈数据集通常分为 99.97%/0.03%。这是不平衡的。

这在很大程度上取决于学习方法。大多数通用方法都有一种(或几种)方法来处理这个问题。一个常见的解决方法是对少数类分配更高的错误分类惩罚,强制分类器识别它们(SVM、逻辑回归、神经网络……)。

像您提到的那样,更改采样也是一种可能性。在这种情况下,对少数类进行过采样通常比对多数类进行欠采样更好。

有些方法,如随机森林,不需要任何修改。

问题通常不是少数群体中案件的频率而是绝对数量。如果与特征的变化相比,目标没有足够的变化,那么这可能意味着算法无法非常准确地对事物进行分类。

一件事是错误分类惩罚可以在分类步骤中使用,而不是在参数估计步骤中(如果有的话)。有些方法没有参数的概念,它们只是产生直接的类标签或类概率。

当您拥有概率估计器时,您可以根据信息论基础或结合商业价值做出分类决策。

添加两个技巧:1.使用 CDF ,计算训练数据中的频率或使用非常大的验证(如果您的测试集不会改变,但验证集必须与训练集具有相同的分布),然后对您的预测进行排序,并得到一个类的第一个 X%(你计算之前的频率),其他的是 else/ 2.加权样本,模型将倾向于加权样本类,你可以使用样本方差 v。权重i = 1/2(1- (vmax - vi)/vmax)