关于如何解决阶级失衡问题,有许多岗位和资源,即对少数群体进行过度抽样或对多数群体进行抽样不足。
我也明白,使用准确性来评估不平衡问题的模型性能是错误的。
然而,我没有找到很多资源,首先谈论为什么ML模型失败在类不平衡问题。是否仅仅因为损失函数通常是所有数据点的总和,因此模型倾向于更多地强调多数类数据而不是少数类数据?
其次,在实际应用中,例如欺诈检测或点击预测(发生类不平衡),为什么通过训练集的过度(欠)采样来改变分布是一件好事?我们不希望分类器反映实际分布(其性质不平衡)吗?让我们说我有一个逻辑回归模型训练来预测欺诈,并假设欺诈率是2%。欺诈事件的过度抽样基本上告诉模型欺诈率不是2%,而是50%(比如说)。这是一件好事吗?
总结一下。两个问题:
为什么ML模型会在类不平衡设置中失败?是否因为损失函数通常由各个数据点的损失总和组成?
为什么over(under)-sampling本质上改变了模型看待问题的方式,这是一个好方法?为什么不让模型真实地反映出类的分布呢?
答案 0 :(得分:4)
我通过一个例子来解释你的问题:
如果存在由以下交易组成的数据集:
分类器倾向于将欺诈性交易分类为真实交易。
假设机器学习算法有两个可能的输出如下:
模型1
分类交易:
模型2
分类交易:
如果分类器的表现由错误次数决定:
模型1 :17个错误。
模型2 :102个错误。
模型1更好。
但是,我们希望尽量减少欺诈的数量:
模型1 :7个错误。
模型2 :2个错误。
模型2更好。
回答问题1 :通用机器学习算法将选择 模型1 模型2,这是一个问题。在实践中,这意味着我们会让一个 尽管我们可以做多次欺诈交易 使用模型2停止了它们。
<强>欠强>
通过欠采样,我们可以冒险删除一些更具代表性的多数类实例,从而丢弃有用的信息。
这可以说明如下:
绿线:我们希望拥有的理想决策边界。 蓝色是实际结果。
左图:仅应用一般机器学习算法而不欠采样的结果。
右图:仅使用欠采样的一般机器学习算法的结果。
<强>过采样强>
通过过采样,只是复制少数类可能导致分类器过度拟合几个例子,如下所示:
左图:仅应用一般机器学习算法而不欠采样的结果。
右图:仅使用过采样的常规机器学习算法的结果。
回答问题2 :在欠采样中,我们对负面类进行了欠采样,但删除了一些信息负面类,并导致了蓝色决策边界 倾斜,导致一些负面的类被归类为 错误的积极阶层。
在过采样中,厚的正号表示存在多个重复的副本 那个数据实例。机器学习算法然后看到这些 案件多次,因此设计过度适应这些例子 具体而言,导致如上所述的蓝线边界。
有关详细信息,请参阅this。
答案 1 :(得分:3)
在逻辑回归(及其泛化 - 神经网络)中,类不平衡强烈影响截距,但对斜率系数的影响非常小。直观地,当我们改变类的先验概率时,来自二元逻辑回归的预测优势比 log(p(y=1)/p(y=0)) = a+x*b
会改变一个固定的数量,并且拦截a
会捕捉到这种影响。 / p>
在决策树(及其概括 - 随机森林和梯度提升树)中,类不平衡影响叶杂质度量,但这种影响对于所有候选分裂大致相等,因此通常不会影响分裂的选择很多(the details)。
另一方面,像 SVM 这样的非概率模型会受到类不平衡的严重影响。 SVM以这样的方式学习它的分离超平面,即大致相同数量的正面和负面示例(支持观察)位于边界或其错误的一侧。因此,重新采样可以显着改变这些数字和边界的位置。
当我们使用二进制分类的概率模型时,一切正常:在训练时,模型不太依赖于不平衡,而对于测试,我们可以使用不平衡不敏感的指标,如ROC AUC ,取决于预测的类概率,而不是“硬”离散分类。
但是,这些指标并不容易推广多类分类,我们通常会利用简单的准确性来评估多类问题。并且准确性已经知道类不平衡的问题:它基于硬分类,可能完全忽略稀有类。当大多数从业者转向过采样时就是这种情况。但是,如果您坚持概率预测并使用 log loss (又称交叉熵)来衡量性能,您仍然可以在类不平衡中存活下来。
想象一下当你不需要图片上有猫的概率的应用程序时,你只想知道这个图像是否与猫的图像更像相似而不是狗的图像。在这种情况下,可能希望猫和狗有相同数量的“投票”,即使在最初的训练样本猫中占多数。
在其他应用程序(如欺诈检测,点击预测或我最喜欢的信用评分)中,您真正需要的不是“硬”分类,而是排名:哪些客户更有可能欺骗,点击或默认其他人?在这种情况下,样本是否不平衡并不重要,因为截止通常是手工设置(从经济考虑,如成本分析)。然而,在这样的应用中,预测欺诈(或点击或默认)的“真实”概率可能是有帮助的,因此上采样是不希望的。