朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。
首先基于特征条件独立假设学习输入/输出的联合概率分布;
然后基于此模型,对给定的输入,利用贝叶斯定理求出后验概率最大的输出
。
朴素贝叶斯实现简单,学习与预测的效率都很高,是一种常用方法。
1 条件概率和贝叶斯公式
首先让我们重温一下概率论上的两个知识点:条件概率和贝叶斯公式。
条件概率:
A事件发生条件下B事件发生的概率:
- 首先需要事件A发生:
;
- 事件A发生条件下事件B发生的概率:
;
- 根据个人理解,
(事件A与事件B同时发生的概率)应该是事件A发生后,乘以事件A中B发生的概率;也等于事件B发生后,乘以事件B中A发生的概率。
所以条件概率可以表示为:
贝叶斯公式:
一般情况下很难获得,所以条件概率可以写成如下形式:
这就是简单的贝叶斯公式。
称为先验概率,
为后验概率,可以理解前者是一件事情发生的概率,后者是给出一定条件下前一件事情发生的概率;
也被称为调整因子;
- 调整因子大于1,条件发生后,后验概率被放大;
- 调整因子小于1,条件发生后,后验概率被缩小;
- 调整因子等于1,条件发生后,后验概率没有概率;
例如:
表示发生心脏病的概率,
表示肥胖的概率;
如何估计肥胖的人犯心脏病的概率,即求解?
如果心脏病概率,肥胖率
都知道,而且可以从医院获得心脏病人肥胖的概率
,那么就可以根据贝叶斯公式获得肥胖人得心脏病的概率。
2 朴素贝叶斯法的学习与分类
2.1基本方法
设输入空间为
维向量的集合,输出空间为类标记集合
。
输入为特征向量,输出为类标记(class label)
;
是定义在输入空间
上的随机向量,
是定义在输出空间
上的随机变量。
是
和
的联合概率分布,训练数据集:
由独立同分布产生。
朴素贝叶斯法通过训练数据集学习联合概率分布;具体讲,学习以下先验概率分布及条件概率分布;
先验概率:
条件概率分布:
从而学习到联合概率分布P(X,Y)。
条件概率分布
有指数级数量的参数,其估计是不可行的,事实上,假设
可取值有
个,
,
可取值有
个,那么参数个数为
朴素贝叶斯法对条件概率分布做了条件独立性的假设,由于这是个较强的假设,朴素贝叶斯法也由此得名;具体地,条件独立性假设是:
朴素贝叶斯分类时,对给定输入,通过学习到的模型计算后验概率分布
,将后验概率最大的类作为
的类输出,后验概率就按根据贝叶斯定理进行:
将条件独立性假设代入上式中:
上式即为朴素贝叶斯分类的基本公式。
于是朴素贝叶斯分类器可表示为:
上式中分母对所有都是相同的,所以:
3 朴素贝叶斯法的参数估计
先补一下课吧,MLE和MAP以及频率学派与贝叶斯学派的讨论参考:
《聊一聊机器学习的MLE和MAP:最大似然估计和最大后验估计》
3.1 极大似然估计
先验概率的极大似然估计:
设第个特征
可能取值的集合为
,条件概率
是第
个样本的第
个特征;
是第
个特征可能取的第
个值;
为指示函数;
3.2 学习与分类算法
朴素贝叶斯算法:
输入:训练数据,其中
,
是第
个样本的第
个特征,
,
是第
个特征可能取得第
个值;
,
,
输出:实例的分类。
- 计算先验概率及条件概率
- 对于给定的实例
,计算:
书上实例:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | |
| S | M | M | S | S | S | M | M | L | L | L | M | M | L | L | |
| Y | -1 | -1 | 1 | 1 | -1 | -1 | -1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
根据算法,首先计算先验概率和条件概率:
对于给定的,计算:
所以得出。
3.3 贝叶斯估计
极大似然估计可能会出现所估计的概率值为0的情况,这时会影响到后验概率的计算结果,使分类产生偏差,解决这一问题的方法是采用贝叶斯估计,具体地,条件概率的贝斯估计是:
-
等价于在随机变量各个取值的频数上赋予一个正数
-
就变成了极大似然估计;
-
称为拉普拉斯平滑;
同样,先验概率的贝叶斯估计是:
同上例,,
对于给定的,计算得到:
后者最大,所以。












网友评论