调整分类问题中的不平衡会降低精度、准确率但会增加召回率

数据挖掘 机器学习 Python 阶级失衡
2022-02-24 03:13:56

我了解到,在训练 CNN 时调整不平衡数据会影响模型性能,这让我开始思考“在 ML 中呢?” 所以我自己做了一些测试,你可以在这里查看-> https://haneulkim.medium.com/handling-imbalanced-class-in-machine-learning-classifiers-1b5c528f427f

我最终得出结论,当我们使用随机过采样来平衡我们的数据时,我们的精度和准确度会降低。我想知道为什么会这样……

如果它需要我做更多的研究,链接到资源将不胜感激。谢谢!

1个回答

直观地说,数据不平衡的问题可以这样理解:如果一个分类器不确定如何对一个实例进行分类,但它知道大多数实例属于 X 类,那么只要有疑问,预测 X 类总是最好的决策。结果,分类器不可避免地过于频繁地分配类别 X,因为所有“不确定”案例最终都被标记为多数类别 X。

因此,首先重要的是要了解重采样不会自动“治愈”不平衡数据:

  • 重采样并没有为分类器提供更多信息,它只是以不同的方式呈现,以迫使分类器更多地关注少数类。
  • 在数据容易分离的情况下,分类器可以在不重新采样的情况下做得非常好。这意味着只要有可能,最好改进特征而不是使用重采样,因为这实际上可以帮助分类器完成其工作。

话虽如此,在某些情况下,重采样是一种有用的技术。假设少数类的标准选择为正类,重采样只会以牺牲精度为代价增加召回率:如上所述,当分类器无法轻松预测实例的类时,就会出现差异。在这种情况下,它有两种选择:

  • 分配负多数类:更可能是正确的(True Negative),False Negative 错误的风险很小。
  • 分配正少数类:更可能不正确(假阳性),小概率正确(真阳性)

如果不重新采样,分类器倾向于第一个选项,因此它几乎没有 FP 错误,但有很多 FN 错误。因此,它可以具有相当高的精度,但召回率很低。

通过重新采样,类是相等的,因此分类器不再支持第一个选项。因此,它产生的 FN 错误更少,但 FP 错误更多,这意味着它以牺牲精度为代价增加了召回率。