我有一个用例,其中文本需要分类为三个类别之一。我从Naive Bayes [Apache OpenNLP,Java]开始,但是我被告知算法是有偏见的,这意味着如果我的训练数据有60%的数据为classA,30%的classB和10%的classC,则该算法倾向于偏向于ClassA,并因此预测其他类别文本为classA。
如果这是真的,有没有办法解决这个问题?
我遇到了其他算法,例如SVM分类器或逻辑回归(最大熵模型),但是我不确定哪种算法更适合我的用例。请告知。
答案 0 :(得分:1)
有解决此问题的方法吗?
是的,有。但是首先您需要了解为什么会发生这种情况?
基本上,您的数据集是不平衡的。
不平衡的数据集意味着两个类别之一的实例高于另一个类别,换句话说,对于分类数据集中的所有类别,观察次数并不相同。
在这种情况下,由于您拥有更多样本的训练数据,因此您的模型会偏向具有大多数样本的类别。
解决方案
F1-score
,“精确调用or
”来衡量模型的性能。还有更多解决方案,如果您想了解更多信息,请参阅此blog
我遇到了其他算法,例如SVM分类器或逻辑回归(最大熵模型),但是我不确定 会更适合我的用例
除非您尝试一下,否则您将永远不知道,我建议您对数据尝试3-4种不同的算法。