在二进制分类机器学习中平衡正/负示例的必要性?

数据挖掘 机器学习 阶级失衡
2021-10-10 05:22:53

当使用梯度增强树和 CNN 等机器学习模型时,在学习二元分类时是否需要(或被认为是一种总是好的做法)平衡正/负示例的数量?

给定P正例和N负例,其中P << N,我可以想到几个选择:(让我们忘记验证集和测试集)

选项 A)根本不平衡,将所有示例(完全P+N)放入训练集中,而不对其比率进行加权。

选项B)将所有示例(totally P+N)放入训练集中,但对所有正例1/2P和所有负例1/2N进行加权,使正例和负例的总权重相等。

选项 C)取所有P正例,然后采样P负例(从 中),并用这些例子以统一的权重进行N训练。2P

每种方法的优点/缺点是什么?我们通常采用哪种方法?

1个回答

让我们从回答您的第一个问题开始。是否需要平衡数据集?

当然,原因很简单,因为没有这样做,所以你最终会出现算法偏差。这意味着,如果您在不平衡分类器的情况下训练分类器,则很有可能偏爱具有最多示例的类之一。增强树尤其如此。通常,即使是正常的决策树也具有相同的效果。所以平衡数据集总是很重要的

现在让我们讨论放置的三种不同场景。

选择 A):这就是我一直解释的。我并不是说你一定会有偏见。这取决于数据集本身。如果数据集的性质与边界有很好的区别,那么错误分类的机会就会减少,你可能会得到一个不错的结果,但仍然不推荐。此外,如果数据没有良好的边界,那么误分类率会上升很多。

选项 B):由于您为每个样本设置权重,因此您试图通过惩罚来克服偏差。这也称为非对称方法。通常,这些方法会略微提高模型的准确性,但这主要取决于您使用的机器学习算法。在像 Adaboost 这样的模型的例子中,模型的有效性增加了。这种方法也称为非对称 Adaboost。但这可能不一定适用于所有算法。

选项C):假设您已相应地对样本进行加权,它应该与选项 A 或选项 B 相同。我将根据我之前的解释将这个留给您进行推断。