如果我在分类之前采样会出现什么问题?

数据挖掘 采样 二元分类
2022-02-10 13:42:33

我在一个表中有一百万个条目,可用于训练二元分类器。其中只有 3 万个是阳性的。统一选择大约 30,000 个负例,然后仅在 60,000 而不是 100,000 个条目上训练二元分类器,这有什么根本错误吗?

我自己对这个想法的反应是,在它下面是关于负和正之间距离分布的一些假设。想象一下,数据只是一个实数,所需要的只是一个截断。并假设削减为零。然后,如果负例是肥尾的,则分类器可能会选择次优的负截断,因为已经看到接近零的正例,但不是负例接近零的罕见情况。

但是,这种类型的问题应该可以通过对数据进行统计测试来检测。

在这个免费午餐场景中,我还缺少什么?

3个回答

在此处和交叉验证中搜索不平衡数据。有很多关于技术,利弊的讨论。

可以说这取决于。但是在标题中使用“错误”可能太强烈了。某些事情可能没有错,但对于您的用例可能不是最佳的。

如果该模型应该生成经过良好校准的概率,则向下/向上样本可能会影响校准。有些公式和技术可能会有所调整。如果您不在乎经过良好校准,那么也许没有害处。

该模型正在丢失信息。如果信息是重复的或全部都在倾斜数据的一端,这可能没问题。但否则,模型可能会更弱。当然,如果消除了噪声或消除了不相关的记录,模型可能会更强大。

就像您提到的那样,由于信息丢失,可能会错误地应用截止值。也许您正在做信用建模,并且样本越小,交易金额的相关性就越低。但是当模型投入生产并看到整个人口进行评分时,交易金额非常相关,并且截止值没有充分考虑到这一点。

或者也许样本中的交易量变得更强,一切都变得更好。

如果您对模型的解释感兴趣——比如逻辑回归的系数,那么抽样通常会增加系数的标准误差。如果有抑制因素(偏相关)减弱,这些因素也可能削弱系数或模型。

我不确定免费午餐是什么。如果您降低样本,可能会或可能不会产生影响。可能有也可能没有您关心的效果。但是那里需要做一些工作。用计算机的训练时间换取人的分析时间。但部分分析可能是引导和比较,因此可能没有消除培训时间。

您可能想说明您的目标和下采样的原因。并阅读不平衡的数据帖子,因为这可能有助于集中问题。

减轻采样问题的一种可能方法是应用集成。Bootstrap 聚合/装袋可用于重复抽取 30K 正样本。在每个 30k 正样本上建立一个模型,然后聚合单独的模型预测。

bagging 的结果可能是一个强大的分类器,可以学习所有数据的相对贡献。

注意:如果有人能告诉我为什么这个答案被否决,我将不胜感激。我是来学习的,但并非完全没有经验,并且确实考虑过。如果我弄错或不清楚 - 我想以何种方式听到。


事情是否“出错”取决于过程的目标是什么。但是,从强烈的意义上说,根本没有什么事情会出错。问题更多 - 效果如何?

假设有一组东西属于几个类。每个事物都有几个具有多元高斯分布的实值属性。每个类的属性的均值和方差是不同的。通过选择一个类然后选择属性来选择属性元组的集合。

为简单起见,认为它们具有两个属性并将它们自己放置在一个平面上。在平面上的每个点都有条件概率,即每个类中都有一个点。可以说,对于在平面上某个点测量的事物的类别的最佳猜测是具有最高条件概率的类别。这为类提供了类似于 Voronoi 图的东西。

但是,该图的形状受类概率的先验选择的影响。在抽样总体中,受过训练的分类器响应的概率是总体中的频率。

所以——如果在给定的两个类别中只有 10% 的人口,并且你从每个类别中抽取相同的数字——那么你会偏向分类器,使其更有可能选择 10% 的类别。

健全性检查——如果正面包含整个训练集,那么模型将锁定只是将所有内容都称为正面。如果否定包含整个训练集,那么模型将锁定只是将所有内容称为否定。在这两者之间,我们可以预期会猜到一部分正面和负面。

这是对还是错,取决于当它是正确的类时正确选择这个类更重要 - 还是避免错误选择它更重要。