文章目录
朴素贝叶斯分类
概率论知识
条件概率
P(B|A) 表示在A事件发生的条件下,事件B发生的概率
乘法公式:
case1:两个事件A,B
P
(
A
B
)
=
P
(
A
)
P
(
B
∣
A
)
(
P
(
A
)
>
0
)
P
(
B
A
)
=
P
(
B
)
P
(
A
∣
B
)
(
P
(
B
)
>
0
)
P(AB) = P(A) P(B|A) \quad (P(A)>0) \\ P(BA) = P(B) P(A|B) \quad (P(B)>0)
P(AB)=P(A)P(B∣A)(P(A)>0)P(BA)=P(B)P(A∣B)(P(B)>0)
case2:三个事件ABC
设A,B,C是事件,且P(AB) >0(从而一定有P(A)>0),
P
(
A
B
C
)
=
P
(
A
B
)
P
(
C
∣
A
B
)
=
P
(
A
)
P
(
B
∣
A
)
P
(
C
∣
A
B
)
P(ABC) = P(AB) P(C|AB) = P(A)P(B|A)P(C|AB)
P(ABC)=P(AB)P(C∣AB)=P(A)P(B∣A)P(C∣AB)
case3: 推广到n个事件
P
(
A
1
A
2
A
3
…
A
n
)
=
P
(
A
1
)
P
(
A
2
∣
A
1
)
P
(
A
3
∣
A
2
A
1
)
…
P
(
A
n
∣
A
1
A
2
…
A
n
−
1
)
P(A_1A_2A_3… A_n) = P(A_1)P(A_2|A_1)P(A_3|A_2A_1) … P(A_n|A_1A_2…A_{n-1}) \\
P(A1A2A3…An)=P(A1)P(A2∣A1)P(A3∣A2A1)…P(An∣A1A2…An−1)
全概率公式
设实验E的样本空间为S,已知B1,B2,……,Bn是样本空间S的一个完备事件组,即事件B1,B2,……,Bn 两两互不相容,
B
i
⋂
B
j
=
∅
(
i
≠
j
)
B
i
⋃
…
⋃
B
n
=
S
B_i \bigcap B_j = \emptyset (i\neq j) \\ B_i \bigcup … \bigcup B_n = S
Bi⋂Bj=∅(i=j)Bi⋃…⋃Bn=S
现已知A为E的一个事件,
则有:
P
(
A
)
=
P
(
B
1
)
P
(
A
∣
B
1
)
+
P
(
B
2
)
P
(
A
∣
B
2
)
+
…
+
P
(
A
∣
B
n
)
P
(
B
n
)
P
(
A
)
=
∑
i
=
1
n
P
(
A
∣
B
i
)
P
(
B
i
)
P(A) = P(B_1) P(A|B_1) + P(B_2) P(A|B_2)+… +P(A|B_n) P(B_n) \\ P(A) = \sum_{i=1}^{n}P(A|B_i) P(B_i)
P(A)=P(B1)P(A∣B1)+P(B2)P(A∣B2)+…+P(A∣Bn)P(Bn)P(A)=i=1∑nP(A∣Bi)P(Bi)
全概率公式:可以看作是由原因推结果
,每个原因Bi对结果A的发生有一定的作用,结果A发生的可能性与各种原因的作用大小有关,全概率公式就表达了它们之间的关系。
贝叶斯公式
贝叶斯公式其实就是由条件概率出发,分子由一步条件概率变形,分母通过全概率变形。
P
(
B
∣
A
)
=
P
(
A
B
)
P
(
A
)
=
P
(
B
A
)
P
(
A
)
P
(
B
A
)
=
P
(
B
)
P
(
A
∣
B
)
P
(
A
)
=
∑
j
=
1
n
P
(
B
j
)
P
(
A
∣
B
j
)
P
(
B
∣
A
)
=
P
(
B
)
P
(
A
∣
B
)
∑
j
=
1
n
P
(
B
j
)
P
(
A
∣
B
j
)
P
(
B
i
∣
A
)
=
P
(
B
i
)
P
(
A
∣
B
i
)
∑
j
=
1
n
P
(
B
j
)
P
(
A
∣
B
j
)
P(B\mid A) = \frac{P(AB)}{P(A)} = \frac{P(BA)}{P(A)} \\ P(BA) = P(B) P(A\mid B) \\ P(A) = \sum_{j=1}^n P(B_j)P(A\mid B_j) \\ P(B\mid A) = \frac{P(B)P(A \mid B)}{\sum_{j=1}^n P(B_j)P(A\mid B_j)} \\ P(B_i\mid A) = \frac{P(B_i)P(A \mid B_i)}{\sum_{j=1}^n P(B_j)P(A\mid B_j)}
P(B∣A)=P(A)P(AB)=P(A)P(BA)P(BA)=P(B)P(A∣B)P(A)=j=1∑nP(Bj)P(A∣Bj)P(B∣A)=∑j=1nP(Bj)P(A∣Bj)P(B)P(A∣B)P(Bi∣A)=∑j=1nP(Bj)P(A∣Bj)P(Bi)P(A∣Bi)
在A已经发生的条件下,贝叶斯公式可以用来寻找,导致A发生各种“原因”Bi的概率。
朴素贝叶斯分类的原理和流程
对于给出的待分类项,求解出在此项出现的各个条件下各个类别出现的概率,哪个最大,就认为此待分类属于哪个类别。
正式定义如下:
-
设 X = { x 1 , x 2 , . . , x m } X = \{x_1,x_2,..,x_m\} X={x1,x2,..,xm}, 每个xi 为X 的一个特征属性
-
有 类别集合 $Y = {y_1,y_2,…,y_n} $
-
计算 P ( y 1 ∣ X ) , P ( y 2 ∣ X ) , . . . , P ( y n ∣ X ) P(y_1\mid X),P(y_2\mid X),...,P(y_n\mid X) P(y1∣X),P(y2∣X),...,P(yn∣X)
-
如果$P(y_k \mid X) = \max {P(y_1 \mid X,P(y_2 \mid X,…,P(y_n \mid X))} $ ,则 X ∈ y k X \in y_k X∈yk,即 X所属的类别是 y k y_k yk
所以现在的关键就是如何计算 各个条件概率
-
根据贝叶斯定理:
P ( y i ∣ X ) = P ( X ∣ y i ) P ( y i ) P ( X ) P(y_i \mid X) = \frac{P(X \mid y_i) P(y_i)}{P(X)} P(yi∣X)=P(X)P(X∣yi)P(yi)
-
P ( y i P(y_i P(yi ) 是容易得到的,所以现在需要求出 P ( X ∣ y i ) P(X \mid y_i) P(X∣yi) 和 P ( X ) P(X) P(X)
-
此时需要
“朴素”
来帮忙,假设X的各个特征属性xi 是相互独立的,根据多个独立事件的联合概率公式:
P ( X ) = P ( x 1 , x 2 , . . . , x m ) = P ( x 1 ) P ( x 2 ) . . . P ( x m ) P ( X ∣ y i ) = P ( x 1 ∣ y i ) P ( x 2 ∣ y i ) . . . P ( x m ∣ y i ) = ∏ j = 1 m P ( x j ∣ y i ) P ( X j ∣ y i ) = P ( x j , y i ) P ( y i ) P ( X ∣ y i ) = ∏ j = 1 m P ( x j , y i ) P ( y i ) P(X) = P(x_1,x_2,...,x_m) = P(x_1) P(x_2)...P(x_m) \\ P(X \mid y_i) = P(x_1 \mid y_i) P(x_2 \mid y_i)... P(x_m \mid y_i) = \prod_{j=1}^m P(x_j \mid y_i) \\ P(X_j \mid y_i) = \frac{P(x_j,y_i)}{P(y_i)} \\ P(X \mid y_i) = \prod_{j=1}^m \frac{P(x_j,y_i)}{P(y_i)} P(X)=P(x1,x2,...,xm)=P(x1)P(x2)...P(xm)P(X∣yi)=P(x1∣yi)P(x2∣yi)...P(xm∣yi)=j=1∏mP(xj∣yi)P(Xj∣yi)=P(yi)P(xj,yi)P(X∣yi)=j=1∏mP(yi)P(xj,yi) -
现在有训练集 $M = {(X_1,y_1),(X_2,y_2),…,(X_n,y_n)} $
-
X i = { x i 1 , x i 2 , . . , x i m } X_i = \{x_{i1},x_{i2},..,x_{im}\} Xi={xi1,xi2,..,xim} 代表输入的m维随机变量, Y = { y 1 , y 2 , . . . , y n } Y = \{y_1,y_2,...,y_n\} Y={y1,y2,...,yn}代表类别变量
编号 | 1 | 2 | … | m | Y |
---|---|---|---|---|---|
X1 | x11 | x12 | … | x1m | y1 |
X2 | x21 | x22 | … | x2m | y2 |
X3 | x31 | x32 | … | x3m | y3 |
⋮ \vdots ⋮ | ⋮ \vdots ⋮ | ⋮ \vdots ⋮ | … | ⋮ \vdots ⋮ | ⋮ \vdots ⋮ |
Xn | xn1 | xn2 | … | xnm | yn |
- 统计得到在各个类别 P ( x 1 ∣ y 1 ) , P ( x 2 ∣ y 1 ) , . . . , P ( x m ∣ y 1 ) ; P ( x 1 ∣ y 2 ) , P ( x 2 ∣ y 2 ) , . . . , P ( x m ∣ y 2 ) ; . . . ; P ( x 1 ∣ y n ) , P ( x 2 ∣ y n ) , . . . , P ( x m ∣ y n ) ; P(x_1 \mid y_1),P(x_2 \mid y_1),...,P(x_m \mid y_1); P(x_1 \mid y_2),P(x_2 \mid y_2),...,P(x_m \mid y_2);...;P(x_1 \mid y_n),P(x_2 \mid y_n),...,P(x_m \mid y_n); P(x1∣y1),P(x2∣y1),...,P(xm∣y1);P(x1∣y2),P(x2∣y2),...,P(xm∣y2);...;P(x1∣yn),P(x2∣yn),...,P(xm∣yn);
- 因为分子 P ( X i ) P(X_i) P(Xi)都一样, 所以只需要考虑分子最大,即预测样本 X i X_i Xi最有可能的类别标签 y 为:
y = a r g max ∏ j = 1 m P ( X i j = x i j ∣ Y = y k ) P ( Y = y k ) k ∈ { 1 , 2 , . . . , n } y = arg\, \max \prod_{j=1}^m P(X_{ij} = x_{ij} \mid Y = y_k) P(Y = y_k) \\ k \in \{ 1,2,...,n\} y=argmaxj=1∏mP(Xij=xij∣Y=yk)P(Y=yk)k∈{1,2,...,n}
朴素贝叶斯算法的参数估计
-
以下针对的是特征是离散的。
-
朴素贝叶斯算法的参数估计就是估计先验参数 P ( Y = y k ) P(Y=y_k) P(Y=yk),似然函数(条件参数) P ( X = X i ∣ Y = y k ) P(X=Xi\mid Y=y_k) P(X=Xi∣Y=yk)
-
先验参数 P ( Y = k ) P(Y=k) P(Y=k) 的极大似然估计为:
P ( Y = y k ) = ∑ i = 1 n I ( y i = y k ) n P(Y = y_k) = \frac{\sum _{i=1}^nI(y_i = y_k)}{n} P(Y=yk)=n∑i=1nI(yi=yk) -
I ( y i = c ) I(y_i = c) I(yi=c) 是指示函数,当参数为真时取1,反之取0
-
也就是以频率估计概率
-
条件参数 P ( X = X i ∣ Y = y k ) P(X=Xi\mid Y=y_k) P(X=Xi∣Y=yk)的极大似然估计是:
P ( 𝑋 = 𝑋 i │ 𝑌 = 𝑘 ) = ∏ i = 1 𝑑 ∑ j = 1 n I ( X i j = x i j , y i = k ) ∑ i = 1 n I ( y i = k ) P(𝑋=𝑋_i│𝑌=𝑘)=\prod_{i=1}^𝑑 \frac {\sum_{j=1}^{n}I(X_{ij} = x_{ij},y_i=k)}{\sum_{i=1}^{n}I(y_i = k)} P(X=Xi│Y=k)=i=1∏d∑i=1nI(yi=k)∑j=1nI(Xij=xij,yi=k)
-
当取值只有两个值时,可以简化为伯努利模型
0概率处理(贝叶斯估计)
- 可能在实际上应用中,存在某个特征属性在训练集中没有出现过,这样如果按照以上的计算方法,就会出现 P ( x i ) = 0 P(x_i) = 0 P(xi)=0 的情况,此时,会导致后验概率 P P P为
P ( 𝑋 = 𝑋 i │ 𝑌 = 𝑘 ) = ∏ i = 1 𝑑 ∑ j = 1 n I ( X i j = x i j , y i = k ) + α ∑ i = 1 n I ( y i = k ) + λ α P(𝑋=𝑋_i│𝑌=𝑘)=\prod_{i=1}^𝑑 \frac {\sum_{j=1}^{n}I(X_{ij} = x_{ij},y_i=k)+\alpha}{\sum_{i=1}^{n}I(y_i = k)+\lambda \alpha} P(X=Xi│Y=k)=i=1∏d∑i=1nI(yi=k)+λα∑j=1nI(Xij=xij,yi=k)+α
- I (yi = c) 是指示函数,当参数为真时取值为1,反之取为0
- λ 为 特征的维数,α 是 平滑值
- 通常取α = 1 ,这个平滑称作Laplace 平滑
- 当 0 < α <1, 称作 Lidstone平滑
- α = 0 时 不作平滑,就是极大似然估计。
特征是连续变量的处理方法
- 将连续的特征离散化 :(困难),一般不采用
- 采用高斯模型,假定连续型特征服从正态分布,使用正态分布对条件参数进行求解。
假设概率密度函数$P(x \mid c) \sim N(\mu_c,\delta^2_c)
,
则
参
数
,则参数
,则参数\mu_c$ 和
δ
c
2
\delta_c^2
δc2的极大似然估计为:
μ
^
c
=
1
D
c
∑
x
∈
D
c
x
δ
^
c
2
1
D
c
∑
x
∈
D
c
(
x
−
μ
^
c
)
(
x
−
μ
^
c
)
T
\hat\mu_c = \frac{1}{D_c} \sum_{x \in D_c} x \\ \hat\delta_c^2 \frac{1}{D_c} \sum_{x \in D_c} (x-\hat\mu_c)(x-\hat\mu_c)^T
μ^c=Dc1x∈Dc∑xδ^c2Dc1x∈Dc∑(x−μ^c)(x−μ^c)T
也就是说:通过极大似然法得到的正太分布均值就是样本均值,方差就是
(
x
−
μ
^
c
)
(
x
−
μ
^
c
)
T
(x-\hat\mu_c)(x-\hat\mu_c)^T
(x−μ^c)(x−μ^c)T的均值。
朴素贝叶斯分类总结
- 是典型的生成学习方法。生成方法由训练数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后球的后验概率分布 P ( Y ∣ X ) P(Y \mid X) P(Y∣X) 。具体来说,利用训练数据学习 P ( X ∣ Y ) P(X \mid Y) P(X∣Y) 和 P ( Y ) P(Y) P(Y)的估计,得到联合概率分布:
P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X,Y) = P(Y) P(X \mid Y) P(X,Y)=P(Y)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 ) P(X = x \mid Y = c_k) = P(X_{(1)} = x_{(1)},...,X_{(n)} = x_{(n)} \mid Y = c_k) \\ = \prod_{j=1}^n P(X_{(j)} = x_{(j)} \mid Y = c_k) 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)
这是一个较强的假设。由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,且易于实现。其缺点是分类的性能不一定很高。 -
朴素贝叶斯利用贝叶斯定理与学到的联合概率模型进行分类预测:
P ( y i ∣ X ) = P ( X ∣ y i ) P ( y i ) ∑ i = 1 n P ( y i ) P ( X ∣ y i ) P(y_i \mid X) = \frac{P(X \mid y_i) P(y_i)}{\sum_{i=1}^n P(yi)P(X \mid y_i)} P(yi∣X)=∑i=1nP(yi)P(X∣yi)P(X∣yi)P(yi) -
分类结果:
y = a r g max ∏ j = 1 m P ( X i j = x i j ∣ Y = y k ) P ( Y = y k ) k ∈ { 1 , 2 , . . . , n } y = arg\, \max \prod_{j=1}^m P(X_{ij} = x_{ij} \mid Y = y_k) P(Y = y_k) \\ k \in \{ 1,2,...,n\} y=argmaxj=1∏mP(Xij=xij∣Y=yk)P(Y=yk)k∈{1,2,...,n}
朴素贝叶斯算法优缺点分析
优点:
- 有坚实数学基础,良好分类效率
- 算法逻辑简单,易于理解
- 对小规模数据表现良好,能处理多分类任务,适合增量式训练
- 特征之间相互独立,只涉及二位存储,分类算法过程开销小
- 对确实数据不敏感,常用于文本分类
缺点:
- 假设特征之间是相互独立的,但是这种假设在现实生活中往往是难以成立的,特征之间总会存在相关性,在属性个数多且属性之间的相关性比较大时,分类效果不理想。
- 对于先验概率和条件参数的求解取决于我们选择的模型(极大似然估计或是贝叶斯估计),求得得先验概率和条件参数得值也会影响分类得结果。