一、概念
机器学习算法中,有种依据概率原则进行分类的朴素贝叶斯算法,正如气象学家预测天气一样,朴素贝叶斯算法就是应用先前事件的有关数据来估计未来事件发生的概率。
二、理解朴素贝叶斯
2.1 一个例子
如果我们知道P(spam)[垃圾邮件概率]和P(ham)[非垃圾邮件概率]是相互独立的,分别为20%和80%。其中还有一种邮件是P(Viagra)[含有单词Viagra的邮件]。
那么我们是不是可以得出结论计算P(垃圾邮件&Viagra),即这两个事件同时发生的概率为20%*5%=1%。显然是不对的。因为这样计算的在概率学上有个前提,即两个事件是相互独立的,然而很明显含有Viagra单词的邮件就是垃圾邮件,这两者之间根本就不满足相互独立的条件。
2.2 引出贝叶斯公式并对其进行推导
既然之前计算P(垃圾邮件&Viagra)是不正确的,那么我们应该怎么计算P(垃圾邮件&Viagra)呢,贝叶斯公式可以帮助我们。
基于贝叶斯定理的条件概率:
我们可以手动来推导一下贝叶斯公式。
P(AB)代表AB同时出现的概率,P(A)代表A出现的概率,P(B)代表B出现的概率,P(A|B)代表在B出现的基础上A出现的概率,P(B|A)代表在A出现的基础上B出现的概率。
我们可以得出下列等式:
P(AB)=P(A)*P(B|A)=P(B)*P(A|B)。
给上方公式统一除以P(B)就可以得到贝叶斯公式。
2.3 贝叶斯公式使用
计算贝叶斯定理中每一个组成部分的概率,我们必须构造一个频率表
P(垃圾邮件|Viagra)=P(Viagra|垃圾邮件)*P(垃圾邮件)/P(Viagra)=(4/20)*(20/100)/(5/100)=0.8,因此,如果电子邮件含单词Viagra,那么该电子邮件是垃圾邮件的概率为80%。所以,任何含有单词Viagra的消息都需要被过滤掉。