一. 朴素贝叶斯分类介绍
首先,对于更定数据集
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
m
,
y
m
)
}
\{ (x_1,y_1),(x_2,y_2),…,(x_m,y_m) \}
{(x1,y1),(x2,y2),…,(xm,ym)},可以得到
P
(
X
∣
Y
)
P(X|Y)
P(X∣Y) 和
P
(
Y
)
P(Y)
P(Y) 的估计;(基于特征条件独立假设和先验概率)
然后,利用
P
(
X
,
Y
)
=
P
(
X
∣
Y
)
P
(
Y
)
P(X,Y) = P(X|Y)P(Y)
P(X,Y)=P(X∣Y)P(Y)可以学习 联合概率分布 ;
最后,对于确定的
x
x
x ,通过比较不同
y
y
y 值的
P
(
y
∣
x
)
=
P
(
x
,
y
)
P
(
x
)
P(y|x) = \frac{P(x,y)}{P(x)}
P(y∣x)=P(x)P(x,y) 的大小,得到最大的
P
P
P 所对应的
y
y
y 即为输出
y
y
y 值。(比较后验概率)
这里有必要解释一下先验概率和后验概率:
1、先验概率:统计概率,通过历史的数据统计出的事情发生的概率
2、后验概率:条件概率,当下由因及国的概率
例子:
先验——根据若干年的统计(经验)或者气候(常识),某地方下雨的概率;
后验——根据天上有乌云(原因或者证据/观察数据),下雨(结果)的概率;
3、似然:是根据已知结果去推测固有性质的可能性,是对固有性质的拟合程度。在乎的是 x 和 y 的搞演习,拟合程度,所以不能称为概率,为似然函数。
似然——下雨(果)的时候有乌云(因/证据/观察的数据)的概率,即已经有了果,对证据发生的可能性描述;
二. 算法推导详解
1、朴素贝叶斯法利用贝叶斯定理和学到的联合概率模型进行分类预测:
其实就是一个公式(求解后验概率分布):
P
(
Y
∣
X
)
=
P
(
X
,
Y
)
P
(
X
)
P(Y|X) = \frac{P(X,Y)}{P(X)}
P(Y∣X)=P(X)P(X,Y)
P ( X , Y ) P(X,Y) P(X,Y): 通过训练数据学习获得,第2节介绍
P ( X ) P(X) P(X) :因为模型最终根据输入 X 的分类是通过比较不同输出 y 的 P(Y|X) 大小来确定。而对于相同的 X ,其 P(X) 是确定的,对于大小比较没有影响,所以 P(X) 就不需要计算了。
所以,朴素贝叶斯分类模型 (非最终版):
y
=
a
r
g
  
m
a
x
c
k
  
P
(
X
=
x
,
Y
=
c
k
)
y = arg \; {max}_{c_k} \; P(X=x,Y=c_k)
y=argmaxckP(X=x,Y=ck)
样本数据用于训练联合概率分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y),模型做的就是将输入 x 分到后验概率最大的类 y 。
2、如何训练得到联合概率分布 P(X,Y):
P
(
X
,
Y
)
=
P
(
Y
)
P
(
X
∣
Y
)
P(X,Y) = P(Y)P(X|Y)
P(X,Y)=P(Y)P(X∣Y)1)P(X|Y)计算过程:
朴素贝叶斯的基本假设是条件独立性,称为 特征条件独立性假设:
P
(
X
=
x
∣
Y
=
c
k
)
=
P
(
X
(
1
)
=
x
(
1
)
,
…
,
X
(
n
)
=
x
(
n
)
∣
Y
=
c
k
)
=
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
\begin {aligned} P(X=x|Y=c_k) &= P(X^{(1)}=x^{(1)},…,X^{(n)}=x^{(n)}|Y=c_k)\\ &=\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k) \end {aligned}
P(X=x∣Y=ck)=P(X(1)=x(1),…,X(n)=x(n)∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)
条件独立性假设: 等于是说用于分类的特征在类确定的情况下都是条件独立的。
”这是一个较强的假设。由于这一假设,模型包含的条件概率的数量大大减少,朴素贝叶斯法的学习和预测大为简化。因此朴素贝叶斯法高效且易于实现,但牺牲了一定的分类准确率“
2)
P
(
Y
=
c
k
)
P(Y=c_k)
P(Y=ck) 的计算过程:
就是统计所有样本中
Y
=
c
k
Y=c_k
Y=ck的样本数占所有样本的比例,不用管 X 。
3、朴素贝叶斯分类模型 (最终版):
y
=
a
r
g
  
m
a
x
c
k
  
P
(
Y
=
c
k
)
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y = arg \; {max}_{c_k} \; P(Y=c_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)
y=argmaxckP(Y=ck)j=1∏nP(X(j)=x(j)∣Y=ck)
模型做的就是将输入
x
i
=
(
x
i
(
1
)
,
x
i
(
2
)
,
…
,
x
i
(
n
)
)
T
x_i=(x_i^{(1)},x_i^{(2)},…,x_i^{(n)})^T
xi=(xi(1),xi(2),…,xi(n))T 分到后验概率最大的类
c
k
c_k
ck 中。
注意:这里利用样本数据学习到的是一个分布(联合概率分布 P(X,Y)),而不是像其它ML模型训练那样学习参数。
三. 附上《统计学习方法》中的算法流程
参考:
1《统计学习方法》李航
2 机器学习知识点(二十七)先验概率和后验概率理解