机器学习之朴素贝叶斯

本文会讲到以下内容

  1. 贝叶斯定理
  2. 垃圾邮件分类器

贝叶斯定理

贝叶斯定理又称贝叶斯法则,它的形式为

其中 P(A)、 P(B) 分别为事件 A、B出现的的概率,且 \( P(B) \neq 0 \)

P(A B) 为条件概率,表示在 B 事件出现的情况下 A 的概率。

P(B) 表示全概率,它可以表示为

上面式子的意思是 B 事件出现的概率是由因素 m 个\( A_i \) 影响的。

故(1)中的条件概率又可以

可以简单地

其中 \( P(A)=1-P(-A) \)

垃圾邮件分类器

在机器学习中贝叶斯分类器经常见的应用是垃圾邮件分类。下面我们就运用贝叶斯定理推导一下垃圾邮件的分类模型算法。

假设

\( W_1,W_2,W_3,…,W_i \) 垃圾邮件中出现单词 i 的事件;

S 为垃圾邮件的事件,H 为正常邮件;

P(S) 垃圾邮件概率,P(H) 为正常邮件的概率;

而 P(S)、P(H) 是先验概率,表示在统计之前一封邮件的概率,这里我们假设 P(S) = P(H)=0.5;

\( P(W_i) \) 为单词 i 出现的概率。

那么如果有一份邮件出现了单词 \( W_1 \),那么它是垃圾邮件和正常邮件的概率分别是多大呢?

根据贝叶斯定理

这样可以计算出每个单词的垃圾邮件的条件概率。

其中 \( P(W_i S) \) 表示垃圾邮件中 \( W_i \) 出现的概率,可以根据训练数据可以统计出来。\( P(W_i) \) 也可以从训练数据中得到。

但是仅仅根据其中一个单词来判断一封邮件是否是垃圾邮件,显然是不行的。这就需要计算联合概率(Combining Probabilities)

联合概率(Combining Probabilities)

我们从(5)的式子中选取 n 个概率最大的单词来计算它们的联合概率。

为了简单我们这里取 n=2,于是计算两个单词的联合概率

又由于我们假设单词 \( W_1,W_2 \) 是相互独立的(实际上不是,但是这个假设很有用,而且这样假设实际效果很不错,所以才称之为朴素贝叶斯

所以

又根据全概率公式有

由(6)(7)(8)

将 P(S)=P(H)=0.5 代入

且有

最终

这个就是 \( W_1,W_2 \) 的联合概率

一般地

上式就是垃圾邮件的分类模型

参考文档

http://cs229.stanford.edu/materials.html

http://www.mathpages.com/home/kmath267/kmath267.htm

https://en.wikipedia.org/wiki/Bayes%27_theorem

http://www.paulgraham.com/spam.html


Powered by Jekyll and Theme by solid