朴素贝叶斯中的平衡数据集

机器算法验证 分类 朴素贝叶斯 不平衡类
2022-03-28 01:36:06

在分类模型中,理想的情况是在训练数据集中均匀地表示分类类别。满足此属性的数据集称为平衡数据集。

然而,在朴素贝叶斯分类模型中,分类器被定义为最大化后验概率的优化问题:

argmax_C P(C|F1,...,Fn) = P(C) Sum_i(P(F_i|C))

哪里F_i是特征,哪里是C类(在这个等式中,已经应用了朴素假设)。

但是,如果我们尝试获得具有均匀表示的类别的平衡数据集,那么P(C)(先验)的估计对于所有类别都是相同的 ,因此,我们可以在我们最大化时C摆脱,因为它对于所有类别都是相同的P(C).

此外,通过考虑均匀表示的类别,我们将改变类别的实际分布。

我的问题是:我们真的有兴趣这样做吗,或者我们是否想在我们的分类模型中捕捉到某些类比其他类更有可能的事实(保持数据集不平衡)?

2个回答

分类模型有两种,生成模型判别模型

朴素贝叶斯是一种生成模型,要训练朴素贝叶斯,你的训练数据应该由真实的过程生成,未来的数据也将由该过程生成。平衡数据不是真正过程的一部分,所以你不能这样做。

另一方面,如果您正在训练判别模型(例如逻辑回归),那么在某些情况下,您可能需要平衡数据。一个常见的原因是少数类更重要,通过平衡,你可以在该类中获得更好的性能。操纵数据是一种危险的做法,您应该非常清楚自己为什么要这样做。

获得平衡的数据集并不是朴素贝叶斯分类器的唯一选择。

解决朴素贝叶斯文本分类器的不良假设的论文包含对这一点的讨论以及克服该困难的一些方法。这篇论文的重点是文本分类。

具体来说,它通过一个简单而通用的示例(参见表 1)表明,偏斜会在概率估计中产生偏差。所以也许一个更有趣的问题是,是否可以纠正这种偏见,而不必消除先前的信息。

你能在多大程度上补偿这种偏差取决于具体问题和你手头的数据。例如,如果您只有两个类,并且其中一个类的数据很少,那么您对此无能为力。也许在这种情况下,执行一些新奇检测更为可取。

另一方面,如果您有多个类,则可以应用(如参考论文中所建议的那样)“补充朴素贝叶斯”,它通过一个聪明而简单的技巧来补偿该偏差:而不是估计它计算它的补码,从而得到更平衡的估计。P(Fi|C)