朴素贝叶斯分类器(一)
1 原理
贝叶斯分类器,使用贝叶斯定律,计算文档d分别属于各个类别的概率,把d归类为概率最大的类别。
它用途广泛,比如可以用于垃圾邮件判断,邮件自动分组,单词纠正...
贝叶斯定律:有条件事件A和B
P(AB) = P(A) * P(B|A)
= P(B) * P(A|B)
=>
P(B|A) = P(B) * P(A|B) / P(A)
其中, P(AB)表示A和B同时发生的概率
P(A)表示A发生的概率
P(B)表示B发生的概率
P(B|A)表示,A发生的条件下, B发生的概率
P(A|B)表示,B发生的条件下, A发生的概率
2 建模
贝叶斯分类问题转化为:
D: 出现文档d的事件
C: 属于类别ci的事件
P(Ci): 属于类别ci的概率
P(D|Ci): 属于类别ci的文档, d出现的概率
P(Ci|D): 出现文档d, 属于类别ci的概率
只要针对每个类别,分别求出P(Ci|D),把文档d归为概率最大的类别。
因为在各个类别中,没办法找到和d一模一样的文档,所以我们把文档的概率转化为单词的概率。
P(C1|D) = P(C1) * P(D|C1) / P(D) = P(C1) P(W1|C1) P(W2|C1) P(W3|C1) ... P(Wn|C1) / P(D)
P(C2|D) = P(C2) * P(D|C2) / P(D) = P(C2) P(W1|C2) P(W2|C2) P(W3|C2) ... P(Wn|C2) / P(D)
Wj表示文档d中出现的单词。可以使用分词器得到文档d的所有单词。
因为P(D)是一个常量,要比较P(C1|D) 和P(C2|D) , 可以忽略。
***因此,贝叶斯分类只需要计算P(Ci) P(W1|Ci) P(W2|Ci) P(W3|Ci) ... P(Wn|Ci) ***