贝叶斯定理

我们知道:


P(A∩B)=P(A|B)×P(B)=P(B|A)×P(A)


所以有:


P(A|B)=P(B|A)×P(A)P(B)


这就是贝叶斯定理。


贝叶斯分类器的原理

假如我们要为一个疾病诊断系统构建一个贝叶斯分类器。首先,我们有如下训练集:

职业

症状

疾病

矿工

咳嗽

肺炎

矿工

头痛

感冒

护士

咳嗽

肺结核

护士

头痛

肺炎

矿工

咽痛

肺炎

护士

咽痛

感冒

下面来了一个咽痛护士,我们要确定她患了什么疾病,这里就要用到贝叶斯定理。
该护士感冒的概率为:


P(感冒|护士,咽痛)=P(护士,咽痛|感冒)×P(感冒)P(咽痛,护士)=P(护士|感冒)×P(咽痛|感冒)×P(感冒)P(咽痛)×P(护士)=0.5×0.5×0.330.33×0.5=0.5


同理,该护士

肺炎的概率为:



P(肺炎|护士,咽痛)=P(护士,咽痛|肺炎)×P(肺炎)P(咽痛,护士)=P(护士|肺炎)×P(咽痛|肺炎)×P(肺炎)P(咽痛)×P(护士)=0.33×0.33×0.50.33×0.5=0.33


该护士

肺结核的概率为:



P(肺结核|护士,咽痛)=P(护士,咽痛|肺结核)×P(肺结核)P(咽痛,护士)=P(护士|肺结核)×P(咽痛|肺结核)×P(肺结核)P(咽痛)×P(护士)=1×0×1/60.33×0.5=0


所以,由上可知,

咽痛的护士,最可能是

感冒了。虽然上面的例子是瞎掰的,训练集数量太少,但是也能说明贝叶斯分类器的工作原理,即

可能性最大的那个分类就作为输入特征向量的分类


朴素贝叶斯

朴素(naive)贝叶斯有两个假设:

  • 各个特征之间是相互独立的,即一个特征出现与否,不影响另一个特征是否出现。例如自然语言中 “ I am a student. ”,I 的出现肯定会影响 am 的出现,即主语的出现肯定会影响谓语的出现。但是朴素贝叶斯假设它们之间都没有联系,即在统计意义上是独立的。
  • 各个特征同等重要,其实这个假设也有问题,在文档分类中,很多情况下,某些词比其他词更加重要。

虽然上面两个假设都不太符合实际,但是在实际情况中朴素贝叶斯分类器的效果却还是非常不错的,而且这两个假设使得程序代码逻辑清晰且简单。