NaiveBayes 分类器:我必须连接一个类的所有文件吗?

Posted

技术标签:

【中文标题】NaiveBayes 分类器:我必须连接一个类的所有文件吗?【英文标题】:NaiveBayes Classifier: Do I have to concatenate all files of one class? 【发布时间】:2015-08-30 04:31:37 【问题描述】:

我正在实现一个简单的朴素贝叶斯分类器,但我不明白如何正确计算 类条件概率 (P(d|c))。为了完整起见,我很快想解释一下使用的术语。朴素贝叶斯概率通过以下方式计算:

c 表示任意类,而 d 是文档。让 x = x1,x2,...,xn 是 n 个特征的列表,例如50 个最常见的二元组)。

在我的训练集中有 i 个类(由一个名为 c_i 的文件夹表示),每个类都有 k 个文档(由普通文本文件表示)。

a-priori概率P(c)可以很容易地计算出来:

现在我要计算 P(d|c)。这应该由

现在我不太明白如何计算 P(x_i|c)。我采用特征 x_i(比如说 bigram “th”),现在检查它在 c 类中出现的频率。但是我该怎么做呢?每个类由 k 个文档表示。我必须连接所有这些文件吗?后来我肯定要除以“所有功能的总数”。这会是所有(连接的)文档中二元组“th”的频率吗?

【问题讨论】:

【参考方案1】:

贝叶斯方法假设文档是从某个概率分布中独立抽取的一组单词。基于这种独立性假设,您确实可以将一个类中的所有文档连接起来,并使用类文档联合的词频作为您对类概率分布的估计。

【讨论】:

以上是关于NaiveBayes 分类器:我必须连接一个类的所有文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

Textblob 逻辑帮助。 NaiveBayes分类器

使用预训练模型对一个实例进行分类时,NaiveBayes 分类器出错

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

通过构建混淆矩阵评估 NaiveBayes 分类器

使用 NaiveBayes 分类器对 Weka 中的一个实例进行分类

在 python 中处理不同数据类型的 NaiveBayes 分类器