我正在实现一个简单的朴素贝叶斯分类器,但我不明白如何正确计算类条件概率(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个文档表示。我是否必须连接所有这些文件?后来我肯定要除以“所有功能的总数”。这是所有(连接)文档中“第二个”的频率吗?
答案 0 :(得分:0)
贝叶斯方法假设文档是从一些概率分布中独立绘制的一组单词。基于这种独立性假设,您确实可以连接类中的所有文档,并使用类文档union的单词频率作为对类概率分布的估计。