机器学习理论《统计学习方法》学习笔记:第四章 朴素贝叶斯法

机器学习理论《统计学习方法》学习笔记:第四章 朴素贝叶斯法

  • 4 朴素贝叶斯法
    • 4.1 朴素贝叶斯法的学习与分类
      • 4.1.1 基本方法
      • 4.1.2 后验概率最大化的含义
    • 4.2 朴素贝叶斯法的参数估计
      • 4.2.1 极大似然估计
      • 4.2.2 学习与分类算法
      • 4.2.3 贝叶斯估计
    • 本章概要

4 朴素贝叶斯法

  • 朴素贝叶斯(native bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯法实现简单,学习与预测的效率都很高,是一种常用的方法。

4.1 朴素贝叶斯法的学习与分类

4.1.1 基本方法

  • 设输入空间 X ∈ R n X\in R^n XRn 为n维向量的集合,输出空间为类标记集合 Y = { c 1 , c 2 , ⋯   , c k } Y=\{c_1,c_2,\cdots,c_k\} Y={c1,c2,,ck}输入为特征向量 x ∈ X x\in X xX,输出为类标记 y ∈ Y y\in Y yY. X X X是定义在输入空间上的随机变量, Y Y Y 是定义在输出空间上的随机变。 P ( X , Y ) P(X,Y) P(X,Y) X X X Y Y Y的联合概率分布.训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)} P ( X , Y ) P(X,Y) P(X,Y)独立同分布产生。
  • 朴素贝叶斯法通过训练数据集学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)。具体地,学习以下先验概率分布及条件概率分布。
    先验概率分布 P ( Y = c k ) , k = 1 , 2 , ⋯   , K P(Y=c_k),k=1,2,\cdots,K P(Y=ck),k=1,2,,K
    条件概率分布 P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , X ( 2 ) = x ( 2 ) , ⋯   , X ( n ) = x ( n ) ∣ Y = c k ) , k = 1 , 2 , ⋯   , K P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},\cdots,X^{(n)}=x^{(n)}|Y=c_k),k=1,2,\cdots,K P(X=xY=ck)=P(X(1)=x(1),X(2)=x(2),,X(n)=x(n)Y=ck),k=1,2,,K于是学习到联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)
  • 条件概率分布 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=xY=ck)有指数级数量的参数,其估计实际是不可行的。事实上,假设 x ( j ) x^{(j)} x(j) S j S_j Sj个, j = 1 , 2 , ⋯   , n j=1,2,\cdots,n j=1,2,,n,Y可能取值有K个,那么参数个数为 K ∏ j = 1 n S j K\prod_{j=1}^nS_j Kj=1nSj
  • 朴素贝叶斯法对条件概率分布作了条件独立性假设。由于这时一个较强的假设,朴素贝叶斯法也由此得名。具体地,条件独立性假设是 P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , X ( 2 ) = x ( 2 ) , ⋯   , X ( n ) = x ( n ) ∣ Y = c k ) P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},\cdots,X^{(n)}=x^{(n)}|Y=c_k) P(X=xY=ck)=P(X(1)=x(1),X(2)=x(2),,X(n)=x(n)Y=ck)
    P ( X = x ∣ Y = c k ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) P(X=x|Y=c_k)=\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) P(X=xY=ck)=j=1nP(X(j)=x(j)Y=ck)
  • 朴素贝叶斯法实际上学习到生成数据的机制,所以属于生成模型。条件独立假设等于是说,用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯法变得简单,但是有时会牺牲一定的分类准确率。
  • 贝叶斯分类器可表示为 y = f ( x ) = a r g   m a x c k P ( Y = c k ) ∏ P ( X ( j ) = x ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ P ( X ( j ) = x ( j ) ∣ Y = c k ) y=f(x)=arg\space max_{c_k}{{P(Y=c_k)\prod P(X^{(j)}=x^{(j)}|Y=c_k)}\over{\sum_k P(Y=c_k)\prod P(X^{(j)}=x^{(j)}|Y=c_k)}} y=f(x)=arg maxckkP(Y=ck)P(X(j)=x(j)Y=ck)P(Y=ck)P(X(j)=x(j)Y=ck),其中分母对所有 c k c_k ck都是相同的,所以 y = a r g   m a x c k P ( Y = c k ) ∏ P ( X ( j ) = x ( j ) ∣ Y = c k ) y=arg\space max_{c_k}{P(Y=c_k)\prod P(X^{(j)}=x^{(j)}|Y=c_k)} y=arg maxckP(Y=ck)P(X(j)=x(j)Y=ck)

4.1.2 后验概率最大化的含义

朴素贝叶斯法将实例分到后验概率最大的类中,这等价于期望风险最小化。
假设选择0-1损失函数:
L ( Y , f ( X ) ) = { 1 , Y ≠ f(X) 0 , Y = f(X) L(Y,f(X))= \begin{cases} 1,&\text{Y$\neq$f(X)}\\ 0,&\text{Y = f(X)} \end{cases} 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_{exp}(f)=E[L(Y,f(X))] Rexp(f)=E[L(Y,f(X))]期望是对联合分布 P ( X , Y ) P(X,Y) P(X,Y)取的。
根据期望风险最小化准则就得到了后验概率最大化准则: f ( x ) = a r g   m a x c k P ( c k ∣ X = x ) f(x)=arg\space max_{c_k}P(c_k|X=x) f(x)=arg maxckP(ckX=x)即朴素贝叶斯法所采用的原理。

4.2 朴素贝叶斯法的参数估计

4.2.1 极大似然估计

  • 在朴素贝叶斯法中,学习意味着估计 P ( Y = c k ) P(Y=c_k) P(Y=ck) P ( X ( j ) = x ( j ) ∣ Y = c k ) P(X^{(j)}=x^{(j)}|Y=c_k) P(X(j)=x(j)Y=ck)。可以应用极大似然估计法估计相应的概率。先验概率 P ( Y = c k ) P(Y=c_k) P(Y=ck)的极大似然估计是 P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N , k = 1 , 2 , ⋯   , K P(Y=c_k)={{\sum_{i=1}^NI(y_i=c_k)}\over{N}},k=1,2,\cdots,K P(Y=ck)=Ni=1NI(yi=ck),k=1,2,,K

4.2.2 学习与分类算法

朴素贝叶斯算法

  • 输入:
    训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)},其中, x i = ( x i ( 1 ) , x i ( 2 ) , ⋯   , x i ( n ) ) T x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T xi=(xi(1),xi(2),,xi(n))T, x i ( j ) x_i^{(j)} xi(j)是第i个样本的第j个特征, x i ( j ) ∈ { a j 1 , a j 2 , ⋯   , a j S j } x_i^{(j)}\in\{a_{j1},a_{j2},\cdots,a_{jS_j}\} xi(j){aj1,aj2,,ajSj} a j l a_{jl} ajl是第j个特征值可能取的第l个值, j = 1 , 2 , ⋯   , n ; l = 1 , 2 , ⋯   , S j ; y i ∈ { c 1 , c 2 , ⋯   , c k } j=1,2,\cdots,n;l=1,2,\cdots,S_j;y_i\in\{c_1,c_2,\cdots,c_k\} j=1,2,,n;l=1,2,,Sj;yi{c1,c2,,ck};实例 x x x;
  • 输出:实例 x x x的分类

(1)计算先验概率及条件概率
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N , k = 1 , 2 , ⋯   , K P(Y=c_k)={{\sum_{i=1}^NI(y_i=c_k)}\over{N}},k=1,2,\cdots,K P(Y=ck)=Ni=1NI(yi=ck),k=1,2,,K
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 ) P(X^{(j)}=a_{jl}|Y=c_k)={{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}\over{\sum_{i=1}^NI(y_i=c_k)}} P(X(j)=ajlY=ck)=i=1NI(yi=ck)i=1NI(xi(j)=ajl,yi=ck)
j = 1 , 2 , ⋯   , n ; l = 1 , 2 , ⋯   , S j ; k = 1 , 2 , ⋯   , K j=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,K j=1,2,,n;l=1,2,,Sj;k=1,2,,K
(2)对于给定实例 x = ( x ( 1 ) , x ( 2 ) , ⋯   , x ( n ) ) T x=(x^{(1)},x^{(2)},\cdots,x^{(n)})^T x=(x(1),x(2),,x(n))T,计算 P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) , k = 1 , 2 , ⋯   , K P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k),k=1,2,\cdots,K P(Y=ck)j=1nP(X(j)=x(j)Y=ck),k=1,2,,K
(3)确定实例 x x x的类
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\space max_{c_k} P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) y=arg maxckP(Y=ck)j=1nP(X(j)=x(j)Y=ck)

4.2.3 贝叶斯估计

  • 用极大似然估计可能会出现所要估计的概率值为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}(X^{(j)}=a_{jl}|Y=c_k)={{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}\over{\sum_{i=1}^NI(y_i=c_k)+S_j\lambda}} Pλ(X(j)=ajlY=ck)=i=1NI(yi=ck)+Sjλi=1NI(xi(j)=ajl,yi=ck)+λ式中 λ ≥ 0 \lambda \ge0 λ0.等价于在随机变量各个取值的频数上赋予一个正数 λ > 0 \lambda\gt0 λ>0.当 λ = 0 \lambda=0 λ=0时,就是极大似然估计。常取 λ = 1 \lambda=1 λ=1,这时称为拉普拉斯平滑。显然,对任何 l = 1 , 2 , ⋯   , S j , k = 1 , 2 , ⋯   , K l=1,2,\cdots,S_j,k=1,2,\cdots,K l=1,2,,Sj,k=1,2,,K;有
    P λ ( X ( j ) = a j l ∣ Y = c k ) > 0 P_{\lambda}(X^{(j)}=a_{jl}|Y=c_k)>0 Pλ(X(j)=ajlY=ck)>0
    ∑ ( l = 1 ) S j P ( X ( j ) = a j l ∣ Y = c k ) = 1 \sum_{(l=1)}^{S_j}P(X^{(j)}=a_{jl}|Y=c_k)=1 (l=1)SjP(X(j)=ajlY=ck)=1
    先验概率的贝叶斯估计是 P λ ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ P_{\lambda}(Y=c_k)={{\sum_{i=1}^N}I(y_i=c_k)+\lambda\over{N+K\lambda}} Pλ(Y=ck)=N+Kλi=1NI(yi=ck)+λ

本章概要

  1. 朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求得后验概率分布 P ( Y ∣ X ) P(Y|X) P(YX).具体来说,利用训练数据学习 P ( X ∣ Y ) P(X|Y) P(XY) 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(XY)概率估计方法可以是极大似然估计或贝叶斯估计。
  2. 朴素贝叶斯法的基本假设是条件独立性, P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , X ( 2 ) = x ( 2 ) , ⋯   , X ( n ) = x ( n ) ∣ Y = c k ) P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},\cdots,X^{(n)}=x^{(n)}|Y=c_k) P(X=xY=ck)=P(X(1)=x(1),X(2)=x(2),,X(n)=x(n)Y=ck)
    = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) =\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) =j=1nP(X(j)=x(j)Y=ck)这是一个较强的假设。由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效且易于实现。其缺点是分类的性能不一定很高。
  3. 朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测。 P ( Y ∣ X ) = P ( X , Y ) P ( X ) = P ( Y ) P ( X ∣ Y ) ∑ Y P ( Y ) P ( X ∣ Y ) P(Y|X)={{P(X,Y)}\over{P(X)}}={{P(Y)P(X|Y)}\over{\sum_{Y}P(Y)P(X|Y)}} P(YX)=P(X)P(X,Y)=YP(Y)P(XY)P(Y)P(XY).将输入x分到后验概率最大的类y。 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\space max_{c_k} P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) y=arg maxckP(Y=ck)j=1nP(X(j)=x(j)Y=ck)后验概率最大等价于0-1损失函数时的期望风险最小化。

你可能感兴趣的:(机器学习,人工智能,算法)