2

我对文档分类中使用的特定 Naive Bayse 算法有疑问。以下是我的理解:

  1. 为每个已知分类构建训练集中每个单词的一些概率
  2. 给定一个文档,我们删除它包含的所有单词
  3. 将分类中出现的单词的概率相乘
  4. 对每个分类执行 (3)
  5. 比较(4)的结果,选择后验最高的分类

我感到困惑的是当我们计算给定训练集的每个单词的概率时的部分。例如对于一个单词“banana”,它出现在分类 A 的 100 个文档中,总共有 200 个文档在 A 中,总共有 1000 个词出现在 A 中。要得到“香蕉”出现在分类 A 下的概率,我做使用 100/200=0.5 还是 100/1000=0.1?

4

1 回答 1

3

我相信如果您计算单词出现的文档数量,而不是单词出现的总次数,您的模型会更准确地分类。换句话说

对“提果”进行分类:

“我喜欢香蕉。”

应称重不超过或少于

“香蕉!香蕉!香蕉!我喜欢它们。”

所以你的问题的答案是 100/200 = 0.5。

Wikipedia 上对 Document Classification 的描述也支持我的结论

那么给定文档 D 包含所有单词 W 的概率,给定类别 C,为

http://en.wikipedia.org/wiki/Naive_Bayes_classifier

换句话说,文档分类算法 Wikipedia 描述了测试给定文档包含多少分类词列表。

顺便说一句,更高级的分类算法将检查 N 个单词的序列,而不仅仅是单个单词,其中 N 可以根据您愿意用于计算的 CPU 资源量来设置。

更新

我的直接经验是基于简短的文件。我想强调@BenAllison 在评论中指出的研究表明我的答案对于较长的文档无效。具体来说

一个弱点是,通过仅考虑术语的存在或不存在,BIM 忽略了术语频率中固有的信息。例如,在所有条件相同的情况下,我们期望如果一个单词出现 1 次是一个文档属于某个类的好线索,那么 5 次出现应该更具预测性。

一个相关的问题涉及文档长度。随着文档变长,使用的不同单词的数量以及因此在 BIM 中等于 1 的 x(j) 值的数量通常会增加。

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1529

于 2012-11-13T20:26:17.277 回答