朴素贝叶斯有偏见吗?

时间:2019-05-10 06:22:52

标签: machine-learning nlp text-classification naivebayes

我有一个用例,其中文本需要分类为三个类别之一。我从Naive Bayes [Apache OpenNLP,Java]开始,但是我被告知算法是有偏见的,这意味着如果我的训练数据有60%的数据为classA,30%的classB和10%的classC,则该算法倾向于偏向于ClassA,并因此预测其他类别文本为classA。

如果这是真的,有没有办法解决这个问题?

我遇到了其他算法,例如SVM分类器或逻辑回归(最大熵模型),但是我不确定哪种算法更适合我的用例。请告知。

1 个答案:

答案 0 :(得分:1)

  

有解决此问题的方法吗?

是的,有。但是首先您需要了解为什么会发生这种情况?

基本上,您的数据集是不平衡的。

不平衡的数据集意味着两个类别之一的实例高于另一个类别,换句话说,对于分类数据集中的所有类别,观察次数并不相同。

在这种情况下,由于您拥有更多样本的训练数据,因此您的模型会偏向具有大多数样本的类别。

解决方案

  1. 正在采样: 从多数类中随机抽取样本以使数据集平衡。
  2. 过采样: 添加更多少数类样本以使数据集平衡。
  3. 更改效果指标 使用F1-score,“精确调用or”来衡量模型的性能。

还有更多解决方案,如果您想了解更多信息,请参阅此blog

  

我遇到了其他算法,例如SVM分类器或逻辑回归(最大熵模型),但是我不确定   会更适合我的用例

除非您尝试一下,否则您将永远不知道,我建议您对数据尝试3-4种不同的算法。