朴素贝叶斯有偏见吗?
Posted
技术标签:
【中文标题】朴素贝叶斯有偏见吗?【英文标题】:Is Naive Bayes biased? 【发布时间】:2019-09-28 00:33:12 【问题描述】:我有一个用例,需要将文本分类为三个类别之一。我从朴素贝叶斯 [Apache OpenNLP, Java] 开始,但我被告知该算法有偏见,这意味着如果我的训练数据有 60% 的数据作为 A 类,30% 的数据作为 B 类,10% 的数据作为 C 类,那么算法倾向于偏向A 类,从而预测其他类文本属于 A 类。
如果这是真的,有没有办法克服这个问题?
我遇到了其他算法,例如 SVM 分类器或逻辑回归(最大熵模型),但我不确定哪种算法更适合我的用例。请指教。
【问题讨论】:
【参考方案1】:有办法解决这个问题吗?
是的,有。但首先您需要了解为什么会发生这种情况?
基本上你的数据集是不平衡的。
不平衡的数据集意味着两个类中的一个类的实例高于另一个,换句话说,分类数据集中所有类的观察数量并不相同。
在这种情况下,您的模型会偏向具有大多数样本的类,因为您对该类有更多的训练数据。
解决方案
-
抽样中:
从多数类中随机删除样本以使数据集平衡。
过采样:
添加更多少数类样本以使数据集平衡。
更改绩效指标
使用
F1-score
、'recallor
precision` 来衡量模型的性能。
还有一些解决方案,如果您想了解更多,请参阅blog
我还遇到过其他算法,例如 SVM 分类器或逻辑回归(最大熵模型),但我不确定 这将更适合我的用例
除非你尝试,否则你永远不会知道,我建议你对你的数据尝试 3-4 种不同的算法。
【讨论】:
以上是关于朴素贝叶斯有偏见吗?的主要内容,如果未能解决你的问题,请参考以下文章