| 第四章 朴素贝叶斯法 简单理解:已有的大量样本告诉我们:“好吃的瓜”(类别)大部分(具体来说要用一个概率分布描述)是无籽的、甜的(特征),现在一个新样本过来,我们只能观察到它的特征是有/无籽的、甜/不甜的,要由此判断它是好吃还是不好吃的。一句话说,就是通过大量数据的统计规律得到由类别推特征的概率分布,然后通过贝叶斯公式对新样本由特征推类别。 设输入特征向量为 
      
       
        
         
          X
         
        
        
         X
        
       
      X ,类别为 
      
       
        
         
          Y
         
        
        
         Y
        
       
      Y ,所求概率分布为 
      
       
        
         
          P
         
         
          (
         
         
          X
         
         
          =
         
         
          x
         
         
          ∣
         
         
          Y
         
         
          =
         
         
          
           c
          
          
           k
          
         
         
          )
         
        
        
         P(X = x \mid Y = c_k)
        
       
      P(X=x∣Y=ck?),由于 
      
       
        
         
          X
         
         
          =
         
         
          x
         
        
        
         X = x
        
       
      X=x 意味着在所有特征分量上构成的某个组合,其数量为指数量级,想求出该分布是不可行的。朴素贝叶斯对该问题做的简化是假设所有特征分量间是条件独立的,这样只需求出在每个分量上 
      
       
        
         
          P
         
         
          (
         
         
          
           X
          
          
           
            (
           
           
            j
           
           
            )
           
          
         
         
          =
         
         
          
           x
          
          
           
            (
           
           
            j
           
           
            )
           
          
         
         
          ∣
         
         
          Y
         
         
          =
         
         
          
           c
          
          
           k
          
         
         
          )
         
        
        
         P(X^{(j)} = x^{(j)} \mid Y = c_k)
        
       
      P(X(j)=x(j)∣Y=ck?) 的分布,然后连乘即可求出某个特定组合的概率。 已知以上分布,再利用贝叶斯公式即可反转求出 
      
       
        
         
          P
         
         
          (
         
         
          Y
         
         
          =
         
         
          
           c
          
          
           k
          
         
         
          ∣
         
         
          X
         
         
          =
         
         
          x
         
         
          )
         
        
        
         P(Y = c_k \mid X = x)
        
       
      P(Y=ck?∣X=x) 的概率分布,即由特征推类别。取所有类别中概率最大的即为我们预测的类别。完整表达式:y
          
          
           =
          
          
           f
          
          
           (
          
          
           x
          
          
           )
          
          
           =
          
          
           arg
          
          
           ?
          
          
           
            
             max
            
            
             ?
            
           
           
            
             c
            
            
             k
            
           
          
          
           
            
             P
            
            
             (
            
            
             Y
            
            
             =
            
            
             
              c
             
             
              k
             
            
            
             )
            
            
             
              ∏
             
             
              j
             
            
            
             P
            
            
             (
            
            
             
              X
             
             
              
               (
              
              
               j
              
              
               )
              
             
            
            
             =
            
            
             
              x
             
             
              
               (
              
              
               j
              
              
               )
              
             
            
            
             ∣
            
            
             Y
            
            
             =
            
            
             
              c
             
             
              k
             
            
            
             )
            
           
           
            
             
              ∑
             
             
              k
             
            
            
             P
            
            
             (
            
            
             Y
            
            
             =
            
            
             
              c
             
             
              k
             
            
            
             )
            
            
             
              ∏
             
             
              j
             
            
            
             P
            
            
             (
            
            
             
              X
             
             
              
               (
              
              
               j
              
              
               )
              
             
            
            
             =
            
            
             
              x
             
             
              
               (
              
              
               j
              
              
               )
              
             
            
            
             ∣
            
            
             Y
            
            
             =
            
            
             
              c
             
             
              k
             
            
            
             )
            
           
          
         
         
           y = f(x) = \arg\max_{c_k}\frac{P(Y = c_k)\prod\limits_{j} P(X^{(j)} = x^{(j)} \mid Y = c_k)}{\sum\limits _{k} P(Y = c_k)\prod\limits_{j}P(X^{(j)} = x^{(j)} \mid Y = c_k)} 
         
        
       y=f(x)=argck?max?k∑?P(Y=ck?)j∏?P(X(j)=x(j)∣Y=ck?)P(Y=ck?)j∏?P(X(j)=x(j)∣Y=ck?)?
 其中分母对于 
      
       
        
         
          
           c
          
          
           k
          
         
        
        
         c_k
        
       
      ck? 是一个常量,我们只需要求概率最大值,故可以省略。
 算法: 计算先验概率及条件概率(即:根据样本统计每个分类出现的概率和每个分类下各个特征的概率分布);对于给定待预测实例 
       
        
         
          
           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
            
            
             n
            
           
           
            P
           
           
            (
           
           
            
             X
            
            
             
              (
             
             
              j
             
             
              )
             
            
           
           
            =
           
           
            
             x
            
            
             
              (
             
             
              j
             
             
              )
             
            
           
           
            ∣
           
           
            Y
           
           
            =
           
           
            
             c
            
            
             k
            
           
           
            )
           
          
          
            P(Y = c_k) \prod\limits_{j}^{n} P(X^{(j)} = x^{(j)} \mid Y = c_k) 
          
         
        P(Y=ck?)j∏n?P(X(j)=x(j)∣Y=ck?)
 3.求出概率最大的分类,即为实例 
       
        
         
          
           x
          
         
         
          x
         
        
       x 的预测分类。
 一个问题:输入样本不充分可能导致某个条件概率 
      
       
        
         
          P
         
         
          (
         
         
          
           X
          
          
           
            (
           
           
            j
           
           
            )
           
          
         
         
          =
         
         
          
           x
          
          
           
            (
           
           
            j
           
           
            )
           
          
         
         
          ∣
         
         
          Y
         
         
          =
         
         
          
           c
          
          
           k
          
         
         
          )
         
        
        
         P(X^{(j)} = x^{(j)} \mid Y = c_k)
        
       
      P(X(j)=x(j)∣Y=ck?) 错误的取到0,导致整个连乘概率直接为0(即使 
      
       
        
         
          x
         
        
        
         x
        
       
      x 的其它分量概率可能很大),产生较大误差。解决思想也很简单:给每种情况概率的分子加一个常数 
      
       
        
         
          λ
         
        
        
         \lambda
        
       
      λ,对应的分母加k倍 
      
       
        
         
          λ
         
        
        
         \lambda
        
       
      λ(k为情况的个数),这样各情况概率之和仍为1,而且当样本足够大时,对结果的几乎没有影响。常取 
      
       
        
         
          λ
         
         
          =
         
         
          1
         
        
        
         \lambda=1
        
       
      λ=1,这时称为拉普拉斯平滑 (Laplacian smoothing)。P
           
           
            λ
           
          
          
           (
          
          
           Y
          
          
           =
          
          
           
            c
           
           
            k
           
          
          
           )
          
          
           =
          
          
           
            
             
              ∑
             
             
              
               i
              
              
               =
              
              
               1
              
             
             
              N
             
            
            
             I
            
            
             (
            
            
             
              y
             
             
              i
             
            
            
             =
            
            
             
              c
             
             
              k
             
            
            
             )
            
            
             +
            
            
             λ
            
           
           
            
             N
            
            
             +
            
            
             k
            
            
             λ
            
           
          
         
         
           P_\lambda(Y=c_k) = \frac{\sum\limits_{i=1}^{N}I(y_i=c_k)+\lambda}{N+k\lambda} 
         
        
       Pλ?(Y=ck?)=N+kλi=1∑N?I(yi?=ck?)+λ?
 |