朴素贝叶斯有偏见吗?

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、'recallorprecision` 来衡量模型的性能。

还有一些解决方案,如果您想了解更多,请参阅blog

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

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

【讨论】:

以上是关于朴素贝叶斯有偏见吗?的主要内容,如果未能解决你的问题,请参考以下文章

面试题:逻辑回归与朴素贝叶斯有什么区别

机器学习面试题——朴素贝叶斯

高斯朴素贝叶斯分类

通俗易懂!白话朴素贝叶斯

机器学习之朴素贝叶斯简介

人工智能基础|朴素贝叶斯 SECTION1.0