2

使用朴素贝叶斯文本分类技术,您通常计算训练数据中的单词并计算 p(label | document),其中文档是一串单词?

对于文本分类,为什么我们不能直接计算 P(label | word1, word2, etc) 来预测标签?(即为什么我们需要使用贝叶斯定理)

鉴于文件,我们有完整的数据......似乎应该能够直接计算 p(label and w1 and w2 ) / p(w1 and w2) ?

我意识到训练集不是基本事实。用贝叶斯定理计算能解决这个问题吗?如果是这样,怎么做?你能说明数学是如何工作的吗?

4

3 回答 3

2

贝叶斯使用来自您的训练集和数据的先验信息来估计后验概率。

我认为“我们有完整的数据”将是一个常客的观点。

贝叶斯是对频率论方法的改进,原因有很多,但其中之一是它允许您使用过去的信息改进您的后验。

我建议阅读Doing Bayesian Data Analysis - A Tutorial Using R and BUGS。这是一本关于一个非常重要的话题的好书。贝叶斯赢得了这场战争——最好彻底学习它。

于 2012-04-11T12:10:05.647 回答
1

“朴素贝叶斯”这个名字有点误导,因为你通过贝叶斯定理计算值并不是那么了不起。正如您所指出的,贝叶斯定理源自条件概率的标准定义,因此我们可以证明通过贝叶斯定理给出的答案与正常计算的答案相同。

洞察力(或错误的假设,取决于您的观点)是词频通常与文档标签无关。因为这P(w_1, ..., w_n | label)很容易计算:P(w_1, ..., w_n | label) = P(w_1 | label) * ... * P(w_n | label)

但是我们当然不在乎P(w_1, ..., w_n | label),我们想要P(label | w_1, ..., w_n)。所以我们需要使用贝叶斯定理,因此得名。

通过这样做,我们可以嵌入关于单词独立性的知识,以做出更好的预测。如果我们只是进行原始计算,就无法编码我们关于独立性的知识。

(这对于贝叶斯网络来说是正确的,而不仅仅是朴素贝叶斯——好处是你可以编码你关于变量之间关系的先验知识。)

于 2012-04-11T19:41:29.587 回答
0

研究了一下,问了几个人,想了想。你不计算的原因:

p(label | W1 = 1, W2 = 2 etc) 直接

是因为它在计算上会很困难,因为您需要保留二元组、三元组等的索引。即使这样,您也需要一种聪明的方法来处理索引中出现零次的单词。

使用贝叶斯是解决问题的好方法,但您确实需要做出条件独立假设。

您还可以将公式转换为另一种形式,其中单词仍位于右侧。下面是使用贝叶斯公式从分子开始的数学:

p(w1 | c) * p (w2 | c) ... * p(c)

这可以分解为

p(c | w1) * p(w1) / p(c) * p(c | w2) * p(w2) / p(c) ... p(c | Wn) * p(Wn) / p( c) * p(c)

这简化为

p(c | w1) ... p(c | Wn)*p(c)^-(n-1)*p(w1)....p(Wn)

于 2012-05-17T13:18:25.467 回答