机器学习学习笔记之三:朴素贝叶斯

条件概率和贝叶斯公式

(p(x|y)) 表示在 (y) 发生的条件下 (x) 发生的概率。

条件概率公式:
已知 (p(x)) 和 (p(y)),以及(x), (y)同时发生的概率(p(xy)),那么

[p(x|y) = \frac{p(xy)}{p(y)} ]

[p(y|x) = \frac{p(xy)}{p(x)} ]

由以上两个公式我们还可以得到

[p(x|y) = \frac{p(y|x)p(x)}{p(y)} ]

这就是 贝叶斯公式。其中,
(p(x)) 称为 (x) 的 先验概率
(p(y)) 称为 (y) 的 先验概率
(p(y|x)) 称为 (y) 在 (x) 发生后的 后验概率
(p(x|y)) 称为 (x) 在 (y) 发生后的 后验概率

我们把其中的(x, y)替换成”特征”,”类别”,于是就有更容易理解的公式:

[p(类别|特征) = \frac{p(特征|类别)p(类别)}{p(特征)} ]

使用朴素贝叶斯算法对数据进行分类

假设我们有两种类别(c_1, c_2),如何对特征(\vec{w})进行分类?只要计算(p(c_1|\vec{w}))与(p(c_2|\vec{w})),然后判断哪个概率更大。
(\text{if}\ p(c_1|\vec{w}) > p(c_1|\vec{w})\ \text{then} \ \vec{w} \in c_1)
(\text{if}\ p(c_1|\vec{w}) < p(c_1|\vec{w})\ \text{then} \ \vec{w} \in c_2)

例1:简单的数据分类

已知某女择偶标准可分为[帅,富,高,上进]四个特征。其中根据四个特征分别取值1和0,根据该女过去的相亲记录,有如下分布:

帅富高上进嫁 00000 00010 00100 00111 01011 01101 01111 10000 10010 11101

现在有一男,特征分别是[帅,不富,高,不上进],请问是否符合该女的择偶标准?

:根据贝叶斯公式,我们要求的量是 (p(嫁|[帅,不富,高,不上进])) 和 (p(不嫁 | [帅,不富,高,不上进]))。
我们先计算比较容易计算的量:(p([帅,不富,高,不上进])),由于朴素贝叶斯的条件,我们认为这四个特征是彼此独立的。因此

[\begin{align} p([帅,不富,高,不上进]) & = p(帅)p(不富)p(高)p(不上进) \ & = 0.3 \times 0.6 \times 0.5 \times 0.5 \ & = 0.045 \end{align}]

另外我们还可以求得

[p(嫁) = 0.5, p(不嫁) = 0.5 ]

由于各特征彼此独立,所以

[\begin{align}p([帅,不富,高,不上进] | 嫁) &= p(帅|嫁)p(不富|嫁)p(高|嫁)p(不上进|嫁) \ & = \frac{p(帅,嫁)}{p(嫁)} \times \frac{p(不富,嫁)}{p(嫁)} \times \frac{p(高,嫁)}{p(嫁)} \times \frac{p(不上进,嫁)}{p(嫁)} \ & = \frac{0.1}{0.5} \times \frac{0.1}{0.5} \times \frac{0.4}{0.5} \times \frac{0.2}{0.5} \ & = 0.0128 \end{align}]

[\begin{align}p([帅,不富,高,不上进] | 不嫁) &= p(帅|不嫁)p(不富|不嫁)p(高|不嫁)p(不上进|不嫁) \ & = \frac{p(帅,不嫁)}{p(不嫁)} \times \frac{p(不富,不嫁)}{p(不嫁)} \times \frac{p(高,不嫁)}{p(不嫁)} \times \frac{p(不上进,不嫁)}{p(不嫁)} \ & = \frac{0.2}{0.5} \times \frac{0.5}{0.5} \times \frac{0.1}{0.5} \times \frac{0.3}{0.5} \ & = 0.048 \end{align}]

[\begin{align} p(嫁|[帅,不富,高,不上进]) &= \frac{p([帅,不富,高,不上进] | 嫁)p(嫁)}{p([帅,不富,高,不上进])} \ &=\frac{0.0128 \times 0.5}{0.045} \ &=0.142 \end{align}]

[\begin{align} p(不嫁 | [帅,不富,高,不上进]) &= \frac{p([帅,不富,高,不上进] | 不嫁)p(不嫁)}{p([帅,不富,高,不上进])} \ &= \frac{0.048 \times 0.5}{0.045} \ &= 0.533 \end{align}]

显然 (p(不嫁 | [帅,不富,高,不上进]) > p(嫁|[帅,不富,高,不上进])),所以该男不符合该女的择偶标准。

但是,这个例子仅仅是通过现有的数据和贝叶斯公式直接得出结论,缺少训练的步骤。下面这个例子会通过对垃圾邮件进行分类来详细说明训练和测试的步骤。

例二:垃圾邮件分类

本质上,垃圾邮件分类可以用贝叶斯公式表示如下:

[p(是垃圾邮件|词向量\vec{w_i}) = \frac{p(\vec{w_i}|是垃圾邮件)p(是垃圾邮件)}{p(\vec{w_i})} ]

因此,我们要计算的就是等式右边的三个概率。

[p(\vec{w_i}) = p(w_0)p(w_1)p(w_2)…p(w_n), \ w0,w1,…w_n \in \vec{w_i} ]

[p(\vec{w_i}) = \prod_{k=1}^N \frac{在文本t_i中w_k出现的次数}{w_k出现的总次数} ]

[\begin{align} p(\vec{w_i} | 是垃圾邮件) & = \prod_{i=1}^N \frac{p(\vec{w_i}, 是垃圾邮件)}{p(是垃圾邮件)} \end{align}]

使用对数可以消除乘除法带来的误差,所以上述公式又可表示成

[\begin{align} \ln p(是垃圾邮件|\vec{w_i}) & = \ln p(\vec{w_i} | 是垃圾邮件) + \ln p(是垃圾邮件) – \ln p(\vec{w_i})\ \end{align}]

Original: https://www.cnblogs.com/ryuasuka/p/7405142.html
Author: 飞鸟_Asuka
Title: 机器学习学习笔记之三:朴素贝叶斯

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610470/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球