条件概率公式:
P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=\dfrac{P(AB)}{P(B)} P(A∣B)=P(B)P(AB)
全概率公式:
P ( A ) = ∑ j = 1 N P ( A B i ) = ∑ j = 1 N P ( B i ) P ( A ∣ B i ) P(A)=\sum_{j=1}^N P(AB_i)=\sum_{j=1}^N P(B_i)P(A|B_i) P(A)=j=1∑NP(ABi)=j=1∑NP(Bi)P(A∣Bi)
贝叶斯公式:
P ( B i ∣ A ) = P ( A B i ) P ( A ) = P ( B i ) P ( A ∣ B i ) ∑ j = 1 N P ( B i ) P ( A ∣ B i ) P(B_i|A)=\dfrac{P(AB_i)}{P(A)}=\dfrac{P(B_i)P(A|B_i)}{\sum_{j=1}^N P(B_i)P(A|B_i)} P(Bi∣A)=P(A)P(ABi)=∑j=1NP(Bi)P(A∣Bi)P(Bi)P(A∣Bi)
概率加和规则:
P ( X = x i ) = ∑ j = 1 N P ( X = x i , Y = y j ) P\left(X=x_i\right)=\sum_{j=1}^N P\left(X=x_i,Y=y_j\right) P(X=xi)=j=1∑NP(X=xi,Y=yj)
P ( X ) = ∑ Y P ( X , Y ) P\left(X\right)=\sum_Y P\left(X,Y\right) P(X)=Y∑P(X,Y)
概率乘积规则:
P ( X = x i , Y = y j ) = P ( Y = y j ∣ X = x i ) P ( X = x i ) P\left(X=x_i,Y=y_j\right)=P\left(Y=y_j|X=x_i\right)P\left(X=x_i\right) P(X=xi,Y=yj)=P(Y=yj∣X=xi)P(X=xi)
P ( X , Y ) = P ( Y ∣ X ) P ( X ) P\left(X,Y\right)=P\left(Y|X\right)P\left(X\right) P(X,Y)=P(Y∣X)P(X)
生成学习方法:
利用训练数据学习 P ( X ∣ Y ) P(X|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|Y) P(X,Y)=P(Y)P(X∣Y)
然后求得后验概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X). 具体概率估计方法可以是极大斯坦估计或者贝叶斯估计。
朴素贝叶斯( n a i v e naive naive B a y e s Bayes Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法。
对于给定的训练数据集,首先基于条件独立假设,学习输入输出的联合概率分布;然后基于此模型,对给定的输入 x x x,利用贝叶斯定理,求出后验概率最大的输出类 y y y。
后验概率最大等价于 0 − 1 0-1 0−1损失函数时的期望风险最小化。
作为典型的生成学习方法,朴素贝叶斯实现简单,学习和预测效率都很高,是一种常用模型。
以下主要介绍经典的多项式贝叶斯分类器。
训练集 P ( X , Y ) P(X,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 ) \begin{aligned} P\left(X=x | Y=c_{k}\right) &=P\left(X^{(1)}=x^{(1)}, \cdots, X^{(n)}=x^{(n)} | Y=c_{k}\right) \\ &=\prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right) \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) 这是一个较强的假设。在对性能作出一些妥协的条件下,此假设使模型包含条件概率的数量大为减少,使模型的学习与预测大为简化,从而高效而易于实现。
条件独立性假设也可视为最简单的有向概率图模型。
训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={(x1,y1),(x2,y2),⋯,(xN,yN)}, x i ∈ X ⊆ R n x_i\in\mathcal{X} \subseteq \mathbf{R}^{n} xi∈X⊆Rn, i = 1 , 2 , … , N i=1,2,\dots,N i=1,2,…,N, y ∈ Y = { c 1 , c 2 , … , c k } y\in\mathcal{Y}=\{c_1,c_2,\dots,c_k\} y∈Y={c1,c2,…,ck}, ∣ Y ∣ = K |\mathcal{Y}|=K ∣Y∣=K; x i = ( x i ( 1 ) , x i ( 2 ) , ⋯ , x i ( n ) ) T x_{i}=\left(x_{i}^{(1)}, x_{i}^{(2)}, \cdots, x_{i}^{(n)}\right)^{\mathrm{T}} xi=(xi(1),xi(2),⋯,xi(n))T, x i ( j ) x_{i}^{\left(j\right)} xi(j)是第 i i i个样本的第 j j j个特征, j = 1 , 2 , … , n j=1,2,\dots,n j=1,2,…,n, x i ( j ) ∈ { a j 1 , a j 2 , … , a j S j } x_{i}^{\left(j\right)}\in\{a_{j1},a_{j2},\dots,a_{jS_j}\} xi(j)∈{aj1,aj2,…,ajSj},其中 a j l a_{jl} ajl是第 j j j个特征的第 l l l个取值, l = 1 , 2 , … , S j l=1,2,\dots,S_j l=1,2,…,Sj.
另有实例 x x x.
由假设可得
P ( X = x , Y = c k ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) = P ( Y = c k ∣ X = x ) P ( X = x ) P\left(X=x, Y=c_{k}\right)=P\left(X=x | Y=c_{k}\right) P\left(Y=c_{k}\right)=P\left(Y=c_{k} | X=x\right) P(X=x) P(X=x,Y=ck)=P(X=x∣Y=ck)P(Y=ck)=P(Y=ck∣X=x)P(X=x)
取后两个等式,处理变换得:
P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) P ( X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x , Y = c k ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x ∣ Y = c k ) P ( Y = c k ) = P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) \begin{aligned} P\left(Y=c_{k} | X=x\right) &=\frac{P\left(X=x | Y=c_{k}\right) P\left(Y=c_{k}\right)}{P(X=x)} \\ &=\frac{P\left(X=x | Y=c_{k}\right) P\left(Y=c_{k}\right)}{\sum_{k} P\left(X=x, Y=c_{k}\right)} \\ &=\frac{P\left(X=x| Y=c_{k}\right) P\left(Y=c_{k}\right)}{\sum_{k} P\left(X=x | Y=c_{k}\right) P\left(Y=c_{k}\right)} \\ &=\frac{P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right)}{\sum_{k} P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right)} \end{aligned} P(Y=ck∣X=x)=P(X=x)P(X=x∣Y=ck)P(Y=ck)=∑kP(X=x,Y=ck)P(X=x∣Y=ck)P(Y=ck)=∑kP(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck)=∑kP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)P(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)
以上第二个等号使用了概率加和法则,第三个等号使用了条件概率公式,后两个等号使用了条件独立性假设。
朴素贝叶斯可用直接用分子表示为:
y = f ( x ) = arg max c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) y=f(\mathbf{x})=\arg \max _{c_{k}} \frac{P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right)}{\sum_{k} P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right)} y=f(x)=argckmax∑kP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)P(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)
注意到在公式 ( 10 ) (10) (10)中,分母的值对所有的 c k c_k ck都相等,因此可舍去分母,得到:
y = arg max c k P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) y=\arg \max _{c_k} P\left(Y=c_{k}\right) \prod_{j} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right) y=argckmaxP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
先验概率:
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N , k = 1 , 2 , ⋯ , K P\left(Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)}{N}, \quad k=1,2, \cdots, K P(Y=ck)=N∑i=1NI(yi=ck),k=1,2,⋯,K
条件概率:
P ( X ( j ) = a j t ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = c k ) j = 1 , 2 , ⋯ , n ; l = 1 , 2 , ⋯ , S j : k = 1 , 2 , ⋯ , K \begin{array}{l}{P\left(X^{(j)}=a_{j t} | Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(x_{i}^{(j)}=a_{j l}, y_{i}=c_{k}\right)}{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)}} \\ {j=1,2, \cdots, n ; l=1,2, \cdots, S_{j}: k=1,2, \cdots, K}\end{array} P(X(j)=ajt∣Y=ck)=∑i=1NI(yi=ck)∑i=1NI(xi(j)=ajl,yi=ck)j=1,2,⋯,n;l=1,2,⋯,Sj:k=1,2,⋯,K
其中函数 I I I为指示函数。
如果某个属性值在训练集中没有与某个类同时出现过,则使用公式 ( 10 ) (10) (10)进行概率估计则会出现 0 0 0,并导致连乘氏计算的概率值也为 0 0 0。为防以上情况出现,引入贝叶斯估计如下。
先验概率:
P λ ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) + λ ∑ i = 1 N I ( y i = c k ) + S j λ P_{\lambda}\left(X^{(j)}=a_{j l} | Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(x_{i}^{(j)}=a_{j l}, y_{i}=c_{k}\right)+\lambda}{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)+S_{j} \lambda} Pλ(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)+Sjλ∑i=1NI(xi(j)=ajl,yi=ck)+λ
式中 λ ⩾ 0 \lambda \geqslant 0 λ⩾0.
条件概率:
P λ ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ P_{\lambda}\left(Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)+\lambda}{N+K \lambda} Pλ(Y=ck)=N+Kλ∑i=1NI(yi=ck)+λ
当 λ = 0 \lambda=0 λ=0时,即等价为极大似然估计。
常用 λ = 1 \lambda=1 λ=1,称为拉普拉斯平滑。
考虑公式 ( 14 ) (14) (14),对于任何 l = 1 , 2 , ⋯ , S j , k = 1 , 2 , ⋯ , K l=1,2, \cdots, S_{j}, \quad k=1,2, \cdots, K l=1,2,⋯,Sj,k=1,2,⋯,K,都有
P λ ( X ( j ) = a j l ∣ Y = c k ) > 0 ∑ l = 1 s j P ( X ( j ) = a j l ∣ Y = c k ) = 1 \begin{array}{l}{P_{\lambda}\left(X^{(j)}=a_{j l} | Y=c_{k}\right)>0} \\ {\sum_{l=1}^{s_{j}} P\left(X^{(j)}=a_{j l} | Y=c_{k}\right)=1}\end{array} Pλ(X(j)=ajl∣Y=ck)>0∑l=1sjP(X(j)=ajl∣Y=ck)=1
可见确实是一种分布。公式 ( 15 ) (15) (15)同理。拉普拉斯平滑的实质是假设属性值与类别是均匀分布,这是额外引入的关于数据先验。它修正了训练集样本不充分而导致概率值为 0 0 0的问题,且在训练集变大时,修正引入的先验影响也会逐渐变得可以忽略。
输入:见5. 另有实例 x x x.
输出:实例 x x x的分类.
先验概率(共计 K K K个式子):
P ( Y = c k ) = P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N P\left(Y=c_{k}\right)=P\left(Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)}{N} P(Y=ck)=P(Y=ck)=N∑i=1NI(yi=ck)
条件概率(共计 k ∑ j = 1 n S j k\sum_{j=1}^{n}S_j k∑j=1nSj个式子):
P ( X ( j ) = a j t ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = c k ) j = 1 , 2 , ⋯ , n ; l = 1 , 2 , ⋯ , S j : k = 1 , 2 , ⋯ , K \begin{array}{l}{P\left(X^{(j)}=a_{j t} | Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(x_{i}^{(j)}=a_{j l}, y_{i}=c_{k}\right)}{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)}} \\ {j=1,2, \cdots, n ; l=1,2, \cdots, S_{j}: k=1,2, \cdots, K}\end{array} P(X(j)=ajt∣Y=ck)=∑i=1NI(yi=ck)∑i=1NI(xi(j)=ajl,yi=ck)j=1,2,⋯,n;l=1,2,⋯,Sj:k=1,2,⋯,K
对于给定实例 x = ( x i ( 1 ) , x i ( 2 ) , ⋯ , x i ( n ) ) T x=\left(x_{i}^{(1)}, x_{i}^{(2)}, \cdots, x_{i}^{(n)}\right)^{\mathrm{T}} x=(xi(1),xi(2),⋯,xi(n))T,计算:
P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) , k = 1 , 2 , ⋯ , K P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right), \quad k=1,2, \cdots, K P(Y=ck)j=1∏nP(X(j)=x(j)∣Y=ck),k=1,2,⋯,K
确定实例 x x x的分类:
y = arg max a P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) y=\arg \max _{a} P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right) y=argamaxP(Y=ck)j=1∏nP(X(j)=x(j)∣Y=ck)
以上是基础的多项式贝叶斯分类器,用于自变量均为离散值的情况。
如果数据集中的自变量均为连续的数值型数据,则选择本章的高斯贝叶斯分类器。
假设自变量特征 x ( j ) x^{\left(j\right)} x(j)服从高斯分布,即:
P ( x ( j ) ∣ c k ) ∼ N ( μ j , k , σ j , k 2 ) P\left(x^{\left(j\right)} | c_{k}\right) \sim \mathcal{N}\left(\mu_{j,k}, \sigma_{j,k}^{2}\right) P(x(j)∣ck)∼N(μj,k,σj,k2)
其中 μ j , k \mu_{j,k} μj,k和 σ j , k \sigma_{j,k} σj,k为训练集中特征 x ( j ) x^{\left(j\right)} x(j)属于类别 c k c_{k} ck的均值和标准差,则条件概率可以表示为:
P ( x ( j ) ∣ Y = c k ) = 1 2 π σ j , k exp ( − ( x ( j ) − μ j , k ) 2 2 σ j , k 2 ) P\left(x^{\left(j\right)} | Y=c_k\right)=\frac{1}{\sqrt{2 \pi} \sigma_{j,k}} \exp \left(-\frac{\left(x^{\left(j\right)}-\mu_{j,k}\right)^{2}}{2 \sigma_{j,k}^{2}}\right) P(x(j)∣Y=ck)=2πσj,k1exp(−2σj,k2(x(j)−μj,k)2)
其他步骤与思想不变,参考多项式贝叶斯分类器即可。
在某些任务,如文本挖掘中,特征 x ( j ) x^{\left(j\right)} x(j)均为 0 − 1 0-1 0−1二元值,此时优选伯努利贝叶斯分类器。
假设特征 x ( j ) x^{\left(j\right)} x(j)的条件概率为满足伯努利分布。
设特征 x ( j ) ∈ { 0 , 1 } x^{\left(j\right)}\in\{0,1\} x(j)∈{0,1},则记:
p = P ( X ( j ) = 1 ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = 1 , Y = c k ) + λ ∑ i = 1 N I ( y i = c k ) + K λ p=P\left(X^{(j)}=1| Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(x_{i}^{(j)}=1, Y=c_{k}\right)+\lambda}{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)+K \lambda} p=P(X(j)=1∣Y=ck)=∑i=1NI(yi=ck)+Kλ∑i=1NI(xi(j)=1,Y=ck)+λ
因此可将条件概率写为:
P ( X ( j ) = x ( j ) ∣ Y = c k ) = p ⋅ x ( j ) + ( 1 − p ) ⋅ ( 1 − x ( j ) ) P(X^{\left(j\right)}=x^{\left(j\right)}|Y=c_k)=p \cdot x^{\left(j\right)}+(1-p)\cdot(1-x^{\left(j\right)}) P(X(j)=x(j)∣Y=ck)=p⋅x(j)+(1−p)⋅(1−x(j))
其他步骤与思想不变,参考多项式贝叶斯分类器即可。
以下证明期望风险最小化等价于后验概率最大化。
设选择 0 − 1 0-1 0−1损失函数:
L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y, f(X))=\left\{\begin{array}{ll}{1,} & {Y \neq f(X)} \\ {0,} & {Y=f(X)}\end{array}\right. L(Y,f(X))={1,0,Y=f(X)Y=f(X)
式中 f ( X ) f(X) f(X)为分类决策函数。此时期望风险为:
R e x p ( f ) = E [ L ( Y , f ( X ) ) ] R_{\mathrm{exp}}(f)=E[L(Y, f(X))] Rexp(f)=E[L(Y,f(X))]
期望是对联合分布 P ( X , Y ) P(X,Y) P(X,Y)取的,因此再取条件期望:
R e x p ( f ) = E X ∑ k = 1 K [ L ( c k , f ( X ) ) ] P ( c k ∣ X ) R_{\mathrm{exp}}(f)=E_{X} \sum_{k=1}^{K}\left[L\left(c_{k}, f(X)\right)\right] P\left(c_{k} | X\right) Rexp(f)=EXk=1∑K[L(ck,f(X))]P(ck∣X)
为使期望风险最小化,需要对 X = x X=x X=x逐个极小化,即:
f ( x ) = arg min y ∈ Y ∑ k = 1 K L ( c k , y ) P ( c k ∣ X = x ) = arg min y ∈ Y ∑ k = 1 K P ( y ≠ c k ∣ X = x ) = arg min y ∈ Y ( 1 − P ( y = c k ∣ X = x ) ) = arg max y ∈ Y P ( y = c k ∣ X = x ) \begin{aligned} f(x) &=\arg \min _{y \in \mathcal{Y}} \sum_{k=1}^{K} L\left(c_{k}, y\right) P\left(c_{k} | X=x\right) \\ &=\arg \min _{y \in \mathcal{Y}} \sum_{k=1}^{K} P\left(y \neq c_{k} | X=x\right) \\ &=\arg \min _{y \in \mathcal{Y}}\left(1-P\left(y=c_{k} | X=x\right)\right) \\ &=\arg \max _{y \in \mathcal{Y}} P\left(y=c_{k} | X=x\right) \end{aligned} f(x)=argy∈Ymink=1∑KL(ck,y)P(ck∣X=x)=argy∈Ymink=1∑KP(y=ck∣X=x)=argy∈Ymin(1−P(y=ck∣X=x))=argy∈YmaxP(y=ck∣X=x)
注意从第一行到第二个行,对于损失函数 L ( c k , y ) L(c_k,y) L(ck,y),如果 y = c k y=c_k y=ck,则损失函数 L ( c k , y ) = 0 L(c_k,y)=0 L(ck,y)=0,后一项也同时失效,只有当 y ≠ c k y\neq c_k y=ck时,损失函数 L ( c k , y ) = 1 L(c_k,y)=1 L(ck,y)=1,后一项才有效,因此后一项也可以写成第二行的形式以简化算式。从第二行到第三行也容易理解。从第三行到第四行可以注意到 arg min \arg\min argmin变成了 arg max \arg\max argmax,已经从损失函数最大小化转化为后验概率最大化。可知期望风险最小化等价于朴素贝叶斯采用的后验概率最大化:
f ( x ) = arg max c k P ( Y = c k ∣ X = x ) f(x)=\arg \max _{c_{k}} P\left(Y=c_{k} | X=x\right) f(x)=argckmaxP(Y=ck∣X=x)