NaiveBayes 分类器:我是否必须连接一个 class 的所有文件?
NaiveBayes Classifier: Do I have to concatenate all files of one class?
我正在实现一个简单的朴素贝叶斯 class 化器,但我不明白如何正确计算 class 条件概率 (P(d|c))。为了完整起见,我很快想解释一下使用的术语。朴素贝叶斯概率计算如下:
c 表示任意 class 而 d 是文档。设 x = {x1,x2,...,xn} 是 n 个特征的列表,例如50 个最常见的双字母组)。
在我的训练集中有 i classes(由一个名为 c_i 的文件夹表示)并且每个都有 k 个文档(由普通文本文件表示)。
a-priori 概率 P(c) 可以很容易地计算出来:
现在我要计算P(d|c)。这应该由
完成
现在我不太明白如何计算P(x_i|c)。我采用特征 x_i(比方说二元组 "th"),现在检查它在 class c 中出现的频率。但是我该怎么做呢?每个 class 由 k 个文档表示。我必须连接所有这些文件吗?后面肯定要除以"total count of all features"。这会是所有(连接的)文档中二元组 "th" 的频率吗?
贝叶斯方法假设文档是一组从某种概率分布中独立抽取的单词。基于这个独立性假设,你确实可以将所有文档连接成一个 class 并使用 class 文档并集的词频作为你对 class 概率分布的估计。
我正在实现一个简单的朴素贝叶斯 class 化器,但我不明白如何正确计算 class 条件概率 (P(d|c))。为了完整起见,我很快想解释一下使用的术语。朴素贝叶斯概率计算如下:
c 表示任意 class 而 d 是文档。设 x = {x1,x2,...,xn} 是 n 个特征的列表,例如50 个最常见的双字母组)。
在我的训练集中有 i classes(由一个名为 c_i 的文件夹表示)并且每个都有 k 个文档(由普通文本文件表示)。
a-priori 概率 P(c) 可以很容易地计算出来:
现在我要计算P(d|c)。这应该由
完成现在我不太明白如何计算P(x_i|c)。我采用特征 x_i(比方说二元组 "th"),现在检查它在 class c 中出现的频率。但是我该怎么做呢?每个 class 由 k 个文档表示。我必须连接所有这些文件吗?后面肯定要除以"total count of all features"。这会是所有(连接的)文档中二元组 "th" 的频率吗?
贝叶斯方法假设文档是一组从某种概率分布中独立抽取的单词。基于这个独立性假设,你确实可以将所有文档连接成一个 class 并使用 class 文档并集的词频作为你对 class 概率分布的估计。