朴素贝叶斯(Naive Bayes)算法是经典的机器学习算法之一,本篇博文主要用于记录学习该算法从零入门的笔记,如果有错误的地方也请大家指正。
算法的基本原理
朴素贝叶斯分类器(NBC)发源于古典数学理论,有着坚实的数学基础以及稳定的分类效率,是一种基于概率论的分类算法。
- 朴素:指的是假设特征条件独立
- 贝叶斯:说明算法基于贝叶斯定理
贝叶斯定理
首先介绍一下条件概率,条件概率描述事件A在另一个事件B已经发生的条件下发生的概率,记为
P
(
A
∣
B
)
P(A|B)
P(A∣B),A和B可能是相互独立的事件,也可能不是,条件概率公式
P
(
A
∣
B
)
=
P
(
A
B
)
P
(
B
)
P(A|B)=\frac{P(AB)}{P(B)}
P(A∣B)=P(B)P(AB)
全概率公式:
P
(
B
)
=
P
(
A
B
+
A
c
B
)
=
P
(
A
)
P
(
B
∣
A
)
+
P
(
A
c
)
P
(
B
∣
A
c
)
P(B)=P(AB+A^cB)=P(A)P(B|A)+P(A^c)P(B|A^c)
P(B)=P(AB+AcB)=P(A)P(B∣A)+P(Ac)P(B∣Ac)
将全概率公式带入到条件概率公式里可以得到:
P
(
A
∣
B
)
=
P
(
A
B
)
P
(
B
)
=
P
(
B
∣
A
)
×
P
(
A
)
P
(
B
)
=
P
(
B
∣
A
)
×
P
(
A
)
P
(
B
∣
A
)
×
P
(
A
)
+
P
(
B
∣
A
c
)
×
P
(
A
c
)
P(A|B)=\frac {P(AB)} {P(B)}=\frac {P(B|A)\times P(A)}{P(B)}=\frac {P(B|A)\times P(A)}{P(B|A)\times P(A)+P(B|A^c)\times P(A^c)}
P(A∣B)=P(B)P(AB)=P(B)P(B∣A)×P(A)=P(B∣A)×P(A)+P(B∣Ac)×P(Ac)P(B∣A)×P(A)
其中
A
c
A^c
Ac指的是
A
A
A的补集
更一般地有,对于事件Ak和事件B:(其中A1、A2…An是样本空间的一个划分)
如何用贝叶斯定理分类
那么对于一个具体的分类问题,根据贝叶斯定理,在给定样本特征
X
X
X的情况下,该样本属于类别
Y
Y
Y的概率
P
(
Y
∣
X
)
=
P
(
X
∣
Y
)
×
P
(
Y
)
P
(
X
)
P(Y|X)=\frac {P(X|Y)\times P(Y)}{P(X)}
P(Y∣X)=P(X)P(X∣Y)×P(Y)
翻译成比较容易理解的状态
P
(
类
别
∣
特
征
)
=
P
(
特
征
∣
类
别
)
P
(
类
别
)
P
(
特
征
)
P(类别|特征)=\frac {P(特征|类别)P(类别)}{P(特征)}
P(类别∣特征)=P(特征)P(特征∣类别)P(类别)
那么对于一个分类问题,我们就可以通过先验概率 P ( 类 别 ) P(类别) P(类别)和似然估计 P ( 特 征 ∣ 类 别 ) P ( 特 征 ) \frac{P(特征|类别)}{P(特征)} P(特征)P(特征∣类别)来求出后验概率 P ( 类 别 ∣ 特 征 ) P(类别|特征) P(类别∣特征)
- 先验概率指的就是某个事件(类别)发生的概率
- 后验概率即为在另一个事件(特征)发生之后,我们对先前的事件(类别)发生的概率进行的重新评估
- 似然估计就是一个调整因子,就是在另一个事件(特征)发生后,对还未发生的事件(类别)的发生概率的影响
如果似然估计 P ( 特 征 ∣ 类 别 ) P ( 特 征 ) > 1 \frac{P(特征|类别)}{P(特征)}>1 P(特征)P(特征∣类别)>1那么说明 特 征 特征 特征提高了事件 类 别 类别 类别的发生概率,反之,如果小于1,那么就是降低了事件的发生概率
参考:
https://www.jianshu.com/p/5953923f43f0
https://www.cnblogs.com/lliuye/p/9178090.html
以及我的收藏夹
ps:会更新的(咕),根据全概率公式展开X(咕)那一点实在是(咕)看不懂,看懂了就更新(咕)