关于 NaiveBayes 分类器的查询

Posted

技术标签:

【中文标题】关于 NaiveBayes 分类器的查询【英文标题】:Query about NaiveBayes Classifier 【发布时间】:2016-05-09 01:32:13 【问题描述】:

我正在构建一个文本分类器,用于将评论分类为正面或负面。我有一个关于 NaiveBayes 分类器公式的查询:

|                       P(label) * P(f1|label) * ... * P(fn|label)
|  P(label|features) = --------------------------------------------
|                                         P(features)

根据我的理解,如果事件一起发生,概率会成倍增加。例如。 A和B同时发生的概率是多少。在这种情况下乘以概率是否合适?感谢有人可以详细解释这个公式。我正在尝试进行一些手动分类(只是为了检查一些算法生成的分类,这些分类看起来有点不对劲,这将使我能够确定错误分类的确切原因)。

在基本概率术语中,要计算 p(label|feature1,feature2),我们必须将概率相乘以计算特征 1 和特征 2 的出现。但在这种情况下,我不是试图计算标准概率,而是文本的积极/消极强度。因此,如果我总结概率,我会得到一个可以识别正/负商的数字。这有点不合常规,但你认为这可以带来一些好的结果吗?原因是总和和产品可能完全不同。例如。 2*2 =4 但 3*1 = 3

【问题讨论】:

【参考方案1】:

如果类条件概率 P(feature|label) 在统计上独立,则它们可以相乘。然而,在实践中发现,即使对于不独立的类条件概率,朴素贝叶斯仍能产生良好的结果。因此,您可以通过简单的计数来计算各个类条件概率 P(feature|label),然后将它们相乘。

需要注意的一点是,在某些应用程序中,这些概率可能非常小,从而导致潜在的数值下溢。因此,您可能希望将概率的对数相加在一起(而不是将概率相乘)。

【讨论】:

在基本概率术语中,要计算 p(label|feature1,feature2),我们必须将概率相乘以计算特征 1 和特征 2 的出现。但在这种情况下,我不是试图计算标准概率,而是文本的积极/消极强度。因此,如果我总结概率,我会得到一个可以识别正/负商的数字。这有点不合常规,但你认为这可以带来一些好的结果吗?原因是总和和产品可能完全不同。例如。 2*2 =4 但 3*1 = 3 @AmitAgarwal:我认为这不是正确的方法。如果你觉得有用,请给我的答案投票。 @***user2010,请看我上面的回答。无法将其放入 cmets。【参考方案2】:

我了解特征是否不同,例如如果身高为 170 厘米、体重为 200 磅的人成为男性的概率是多少。当这些条件(事件)一起发生时,这些概率必须相乘。但是在文本分类的情况下,这是无效的,因为事件是否一起发生并不重要。例如在出现单词 best 的情况下,评论为正面的概率为 0.1,而在出现 wordpolite 的情况下,评论为正面的概率为 0.05,那么在出现两个词(最佳和礼貌)的情况下,评论为正面的概率) 不是 0.1*0.05。一个更具指示性的数字是概率的总和(需要归一化),

【讨论】:

以上是关于关于 NaiveBayes 分类器的查询的主要内容,如果未能解决你的问题,请参考以下文章

干货|非常通俗的朴素贝叶斯算法(Naive Bayes)

机器学习实战三(Naive Bayes)

Weka 中 SMO、NaiveBayes 和 BayesNet 分类器的不同结果

机器学习分类实例——SVM(修改)/Decision Tree/Naive Bayes

高斯朴素贝叶斯分类

重温Naive Bayes