朴素贝叶斯分类器
朴素贝叶斯分类器
贝叶斯公式
 x代表样本,c代表已知类别
 
     
      
       
        
         P
        
        
         (
        
        
         c
        
        
         ∣
        
        
         x
        
        
         )
        
        
         =
        
        
         
          
           P
          
          
           (
          
          
           c
          
          
           )
          
          
           P
          
          
           (
          
          
           x
          
          
           ∣
          
          
           c
          
          
           )
          
         
         
          
           P
          
          
           (
          
          
           x
          
          
           )
          
         
        
        
        
         (
        
        
         1
        
        
         )
        
       
       
        P(c|x) = \frac{P(c)P(x|c)}{P(x)}\qquad(1)
       
      
     P(c∣x)=P(x)P(c)P(x∣c)(1)
前提假设:
 为了方便计算
    
     
      
       
        P
       
       
        (
       
       
        x
       
       
        ∣
       
       
        c
       
       
        )
       
      
      
       P(x|c)
      
     
    P(x∣c),朴素贝叶斯分类器采用了一个假设:**对已知类别,假设所有属性相互独立。**基于这个假设,式(1)可重写为:
 
     
      
       
        
         P
        
        
         (
        
        
         c
        
        
         ∣
        
        
         x
        
        
         )
        
        
         =
        
        
         
          
           P
          
          
           (
          
          
           c
          
          
           )
          
          
           P
          
          
           (
          
          
           x
          
          
           ∣
          
          
           c
          
          
           )
          
         
         
          
           P
          
          
           (
          
          
           x
          
          
           )
          
         
        
        
         =
        
        
         
          
           P
          
          
           (
          
          
           c
          
          
           )
          
         
         
          
           P
          
          
           (
          
          
           x
          
          
           )
          
         
        
        
         
          ∏
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          d
         
        
        
         P
        
        
         (
        
        
         
          x
         
         
          i
         
        
        
         ∣
        
        
         c
        
        
         )
        
       
       
        P(c|x)= \frac{P(c)P(x|c)}{P(x)}=\frac{P(c)}{P(x)}\prod_{i=1}^{d}P(x_i|c)
       
      
     P(c∣x)=P(x)P(c)P(x∣c)=P(x)P(c)i=1∏dP(xi∣c)
 其中d为属性的数目,
    
     
      
       
        
         x
        
        
         i
        
       
      
      
       x_i
      
     
    xi为
    
     
      
       
        x
       
      
      
       x
      
     
    x在第
    
     
      
       
        i
       
      
      
       i
      
     
    i个属性上的取值。
朴素贝叶斯分类器表达式
 由于对所有类别来说
    
     
      
       
        P
       
       
        (
       
       
        x
       
       
        )
       
      
      
       P(x)
      
     
    P(x)相同,根据贝叶斯判定准则:对每个样本
    
     
      
       
        x
       
      
      
       x
      
     
    x选择能使后验概率
    
     
      
       
        P
       
       
        (
       
       
        c
       
       
        ∣
       
       
        x
       
       
        )
       
      
      
       P(c|x)
      
     
    P(c∣x)最大的类别标记有:
 
     
      
       
        
         
          h
         
         
          
           n
          
          
           b
          
         
        
        
         (
        
        
         x
        
        
         )
        
        
         =
        
        
         a
        
        
         r
        
        
         
          g
         
         
          
           c
          
          
           ∈
          
          
           y
          
         
        
        
         m
        
        
         a
        
        
         x
        
        
         P
        
        
         (
        
        
         c
        
        
         )
        
        
         
          ∏
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          d
         
        
        
         P
        
        
         (
        
        
         
          x
         
         
          i
         
        
        
         ∣
        
        
         c
        
        
         )
        
       
       
        h_{nb}(x) = arg_{c \in y}maxP(c)\prod_{i=1}^{d}P(x_i|c)
       
      
     hnb(x)=argc∈ymaxP(c)i=1∏dP(xi∣c)
  一句话概括:朴树贝叶斯分类器的训练过程就是用训练集
    
     
      
       
        D
       
      
      
       D
      
     
    D估计先验概率
    
     
      
       
        P
       
       
        (
       
       
        c
       
       
        )
       
      
      
       P(c)
      
     
    P(c),为每个属性估计条件概率
    
     
      
       
        P
       
       
        (
       
       
        
         x
        
        
         i
        
       
       
        ∣
       
       
        c
       
       
        )
       
      
      
       P(x_i|c)
      
     
    P(xi∣c)。
  令
    
     
      
       
        
         D
        
        
         c
        
       
      
      
       D_c
      
     
    Dc表示第
    
     
      
       
        D
       
      
      
       D
      
     
    D的第
    
     
      
       
        c
       
      
      
       c
      
     
    c类样本子集,则估计先验概率
 
     
      
       
        
         P
        
        
         (
        
        
         c
        
        
         )
        
        
         =
        
        
         
          
           ∣
          
          
           
            D
           
           
            c
           
          
          
           ∣
          
         
         
          
           ∣
          
          
           D
          
          
           ∣
          
         
        
       
       
        P(c) = \frac{|D_c|}{|D|}
       
      
     P(c)=∣D∣∣Dc∣
  对于离散属性,令
    
     
      
       
        
         D
        
        
         
          c
         
         
          ,
         
         
          
           x
          
          
           i
          
         
        
       
      
      
       D_{{c},{x_i}}
      
     
    Dc,xi表示集合
    
     
      
       
        
         D
        
        
         c
        
       
      
      
       D_c
      
     
    Dc第
    
     
      
       
        i
       
      
      
       i
      
     
    i个属性值为
    
     
      
       
        
         x
        
        
         i
        
       
      
      
       x_i
      
     
    xi的子集,则条件概率
     
      
       
        
         P
        
        
         (
        
        
         
          x
         
         
          i
         
        
        
         ∣
        
        
         c
        
        
         )
        
        
         =
        
        
         
          
           ∣
          
          
           
            D
           
           
            
             c
            
            
             ,
            
            
             
              x
             
             
              i
             
            
           
          
          
           ∣
          
         
         
          
           ∣
          
          
           
            D
           
           
            c
           
          
          
           ∣
          
         
        
       
       
        P(x_i|c)=\frac{|D_{{c},{x_i}}|}{|D_c|}
       
      
     P(xi∣c)=∣Dc∣∣Dc,xi∣
举例
下面是训练集 D D D ,年龄 、收入、学生、信誉为属性, d = 4 d=4 d=4,购买计算机为类别,类别数 y = 2 y=2 y=2
| 编号 | 年龄 | 收入 | 学生 | 信誉 | 购买计算机 | 
|---|---|---|---|---|---|
| 1 | ≤ 30 \le30 ≤30 | 高 | 否 | 中 | 否 | 
| 2 | ≤ 30 \le30 ≤30 | 高 | 否 | 优 | 否 | 
| 3 | 30 ∼ 40 30\sim40 30∼40 | 高 | 否 | 中 | 是 | 
| 4 | ≥ 41 \ge41 ≥41 | 中 | 否 | 中 | 是 | 
| 5 | ≥ 41 \ge41 ≥41 | 低 | 是 | 中 | 是 | 
| 6 | ≥ 41 \ge41 ≥41 | 低 | 是 | 优 | 否 | 
| 7 | 30 ∼ 40 30\sim40 30∼40 | 低 | 是 | 优 | 是 | 
| 8 | ≤ 30 \le30 ≤30 | 中 | 否 | 中 | 否 | 
| 9 | ≤ 30 \le30 ≤30 | 低 | 是 | 中 | 是 | 
| 10 | ≥ 41 \ge41 ≥41 | 中 | 是 | 中 | 是 | 
| 11 | ≤ 30 \le30 ≤30 | 中 | 是 | 优 | 是 | 
| 12 | 30 ∼ 40 30\sim40 30∼40 | 中 | 否 | 优 | 是 | 
| 13 | 30 ∼ 40 30\sim40 30∼40 | 高 | 是 | 中 | 是 | 
| 14 | ≥ 41 \ge41 ≥41 | 中 | 否 | 优 | 否 | 
下面是一个测试样本 x x x,判断是否购买计算机
| 编号 | 年龄 | 收入 | 学生 | 信誉 | 购买计算机 | 
|---|---|---|---|---|---|
| 1 | ≤ 30 \le30 ≤30 | 中 | 是 | 中 | ? | 
首先计算先验概率
    
     
      
       
        P
       
       
        (
       
       
        c
       
       
        )
       
      
      
       P(c)
      
     
    P(c),有:
 
     
      
       
        
         P
        
        
         (
        
        
         购
        
        
         买
        
        
         计
        
        
         算
        
        
         机
        
        
         =
        
        
         是
        
        
         )
        
        
         =
        
        
         
          9
         
         
          14
         
        
        
         =
        
        
         0.64
        
       
       
        P(购买计算机= 是) = \frac{9}{14}=0.64
       
      
     P(购买计算机=是)=149=0.64
 
     
      
       
        
         P
        
        
         (
        
        
         购
        
        
         买
        
        
         计
        
        
         算
        
        
         机
        
        
         =
        
        
         否
        
        
         )
        
        
         =
        
        
         
          5
         
         
          14
         
        
        
         =
        
        
         0.36
        
       
       
        P(购买计算机= 否) = \frac{5}{14}=0.36
       
      
     P(购买计算机=否)=145=0.36
 再为每个属性估计条件概率
    
     
      
       
        P
       
       
        (
       
       
        
         x
        
        
         i
        
       
       
        ∣
       
       
        c
       
       
        )
       
      
      
       P(x_i|c)
      
     
    P(xi∣c)
 
     
      
       
        
         
          P
         
         
          
           年
          
          
           龄
          
          
           ≤
          
          
           30
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           是
          
         
        
        
         =
        
        
         
          2
         
         
          9
         
        
        
         =
        
        
         0.22
        
       
       
        P_{年龄\le30|购买计算机=是}=\frac{2}{9}=0.22
       
      
     P年龄≤30∣购买计算机=是=92=0.22
 
     
      
       
        
         
          P
         
         
          
           年
          
          
           龄
          
          
           ≤
          
          
           30
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           否
          
         
        
        
         =
        
        
         
          3
         
         
          5
         
        
        
         =
        
        
         0.60
        
       
       
        P_{年龄\le30|购买计算机=否}=\frac{3}{5}=0.60
       
      
     P年龄≤30∣购买计算机=否=53=0.60
 
     
      
       
        
         
          P
         
         
          
           收
          
          
           入
          
          
           =
          
          
           中
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           是
          
         
        
        
         =
        
        
         
          4
         
         
          9
         
        
        
         =
        
        
         0.44
        
       
       
        P_{收入=中|购买计算机=是}=\frac{4}{9}=0.44
       
      
     P收入=中∣购买计算机=是=94=0.44
 
     
      
       
        
         
          P
         
         
          
           收
          
          
           入
          
          
           =
          
          
           中
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           否
          
         
        
        
         =
        
        
         
          2
         
         
          5
         
        
        
         =
        
        
         0.40
        
       
       
        P_{收入=中|购买计算机=否}=\frac{2}{5}=0.40
       
      
     P收入=中∣购买计算机=否=52=0.40
 
     
      
       
        
         
          P
         
         
          
           学
          
          
           生
          
          
           =
          
          
           是
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           是
          
         
        
        
         =
        
        
         
          6
         
         
          9
         
        
        
         =
        
        
         0.67
        
       
       
        P_{学生=是|购买计算机=是}=\frac{6}{9}=0.67
       
      
     P学生=是∣购买计算机=是=96=0.67
 
     
      
       
        
         
          P
         
         
          
           学
          
          
           生
          
          
           =
          
          
           是
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           否
          
         
        
        
         =
        
        
         
          1
         
         
          5
         
        
        
         =
        
        
         0.20
        
       
       
        P_{学生=是|购买计算机=否}=\frac{1}{5}=0.20
       
      
     P学生=是∣购买计算机=否=51=0.20
 
     
      
       
        
         
          P
         
         
          
           信
          
          
           誉
          
          
           =
          
          
           中
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           是
          
         
        
        
         =
        
        
         
          6
         
         
          9
         
        
        
         =
        
        
         0.67
        
       
       
        P_{信誉=中|购买计算机=是}=\frac{6}{9}=0.67
       
      
     P信誉=中∣购买计算机=是=96=0.67
 
     
      
       
        
         
          P
         
         
          
           信
          
          
           誉
          
          
           =
          
          
           中
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           否
          
         
        
        
         =
        
        
         
          2
         
         
          5
         
        
        
         =
        
        
         0.40
        
       
       
        P_{信誉=中|购买计算机=否}=\frac{2}{5}=0.40
       
      
     P信誉=中∣购买计算机=否=52=0.40
 所以根据朴素贝叶斯分类器表达式有:
 
     
      
       
        
         P
        
        
         (
        
        
         购
        
        
         买
        
        
         计
        
        
         算
        
        
         机
        
        
         =
        
        
         是
        
        
         )
        
        
         ×
        
        
         
          P
         
         
          
           年
          
          
           龄
          
          
           ≤
          
          
           30
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           是
          
         
        
        
         ×
        
        
         
          P
         
         
          
           收
          
          
           入
          
          
           =
          
          
           中
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           是
          
         
        
        
        
         ×
        
        
         
          P
         
         
          
           学
          
          
           生
          
          
           =
          
          
           是
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           是
          
         
        
        
         ×
        
        
         
          P
         
         
          
           信
          
          
           誉
          
          
           =
          
          
           中
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           是
          
         
        
        
         ≈
        
        
         0.03
        
       
       
        P(购买计算机=是)\times P_{年龄\le30|购买计算机=是} \times P_{收入=中|购买计算机=是} \\ \times P_{学生=是|购买计算机=是}\times P_{信誉=中|购买计算机=是}\approx 0.03
       
      
     P(购买计算机=是)×P年龄≤30∣购买计算机=是×P收入=中∣购买计算机=是×P学生=是∣购买计算机=是×P信誉=中∣购买计算机=是≈0.03
 
     
      
       
        
         P
        
        
         (
        
        
         购
        
        
         买
        
        
         计
        
        
         算
        
        
         机
        
        
         =
        
        
         否
        
        
         )
        
        
         ×
        
        
         
          P
         
         
          
           年
          
          
           龄
          
          
           ≤
          
          
           30
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           否
          
         
        
        
         ×
        
        
         
          P
         
         
          
           收
          
          
           入
          
          
           =
          
          
           中
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           否
          
         
        
        
        
         ×
        
        
         
          P
         
         
          
           学
          
          
           生
          
          
           =
          
          
           是
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           否
          
         
        
        
         ×
        
        
         
          P
         
         
          
           信
          
          
           誉
          
          
           =
          
          
           中
          
          
           ∣
          
          
           购
          
          
           买
          
          
           计
          
          
           算
          
          
           机
          
          
           =
          
          
           否
          
         
        
        
         ≈
        
        
         0.01
        
       
       
        P(购买计算机=否)\times P_{年龄\le30|购买计算机=否} \times P_{收入=中|购买计算机=否} \\ \times P_{学生=是|购买计算机=否}\times P_{信誉=中|购买计算机=否}\approx 0.01
       
      
     P(购买计算机=否)×P年龄≤30∣购买计算机=否×P收入=中∣购买计算机=否×P学生=是∣购买计算机=否×P信誉=中∣购买计算机=否≈0.01
 由于 0.03>0.01,所以朴素贝叶斯分类器将测试样本
    
     
      
       
        x
       
      
      
       x
      
     
    x判别为“购买计算机 = 是”。
拉普拉斯修正(Laplacian correction)
 如果有一个测试样本的属性“信誉 = 低”,那么条件概率
 
    
     
      
       
        P
       
       
        (
       
       
        信
       
       
        誉
       
       
        =
       
       
        低
       
       
        ∣
       
       
        购
       
       
        买
       
       
        计
       
       
        算
       
       
        机
       
       
        =
       
       
        是
       
       
        )
       
       
        =
       
       
        
         0
        
        
         9
        
       
       
        =
       
       
        0
       
      
      
       P(信誉 = 低 | 购买计算机=是) = \frac{0}{9}=0
      
     
    P(信誉=低∣购买计算机=是)=90=0,即使其他属性明显是“购买计算机= 是”,但分类结果都将是“购买计算机 = 否”。为了避免测试样本中其他属性信息被训练集中未出现的属性值“抹去”,可用拉普拉斯修正。
  令
    
     
      
       
        N
       
      
      
       N
      
     
    N表示训练集
    
     
      
       
        D
       
      
      
       D
      
     
    D中可能的类别数,
    
     
      
       
        
         N
        
        
         i
        
       
      
      
       N_i
      
     
    Ni表示第
    
     
      
       
        i
       
      
      
       i
      
     
    i个属性的取值数则
 先验概率为
 
     
      
       
        
         
          P
         
         
          ^
         
        
        
         (
        
        
         c
        
        
         )
        
        
         =
        
        
         
          
           ∣
          
          
           
            D
           
           
            c
           
          
          
           ∣
          
          
           +
          
          
           1
          
         
         
          
           ∣
          
          
           D
          
          
           ∣
          
          
           +
          
          
           N
          
         
        
       
       
        \widehat P(c)=\frac{|D_c|+1}{|D|+N}
       
      
     P
            (c)=∣D∣+N∣Dc∣+1
 后验概率为
 
     
      
       
        
         
          P
         
         
          ^
         
        
        
         (
        
        
         
          x
         
         
          i
         
        
        
         ∣
        
        
         c
        
        
         )
        
        
         =
        
        
         
          
           ∣
          
          
           
            D
           
           
            
             c
            
            
             ,
            
            
             
              x
             
             
              i
             
            
           
          
          
           ∣
          
          
           +
          
          
           1
          
         
         
          
           ∣
          
          
           
            D
           
           
            c
           
          
          
           ∣
          
          
           +
          
          
           
            N
           
           
            i
           
          
         
        
       
       
        \widehat P(x_i|c)=\frac{|D_{c,x_i}|+1}{|D_c|+N_i}
       
      
     P
            (xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1
  例如上文例子中,先验概率可以估计为:
 
     
      
       
        
         
          P
         
         
          ^
         
        
        
         (
        
        
         购
        
        
         买
        
        
         计
        
        
         算
        
        
         机
        
        
         =
        
        
         是
        
        
         )
        
        
         =
        
        
         
          
           9
          
          
           +
          
          
           1
          
         
         
          
           14
          
          
           +
          
          
           2
          
         
        
        
         =
        
        
         0.625
        
       
       
        \widehat P(购买计算机= 是) = \frac{9+1}{14+2}=0.625
       
      
     P
            (购买计算机=是)=14+29+1=0.625
 
     
      
       
        
         
          P
         
         
          ^
         
        
        
         (
        
        
         购
        
        
         买
        
        
         计
        
        
         算
        
        
         机
        
        
         =
        
        
         否
        
        
         )
        
        
         =
        
        
         
          
           5
          
          
           +
          
          
           1
          
         
         
          
           14
          
          
           +
          
          
           2
          
         
        
        
         =
        
        
         0.375
        
       
       
        \widehat P(购买计算机= 否) = \frac{5+1}{14+2}=0.375
       
      
     P
            (购买计算机=否)=14+25+1=0.375
 后验概率可以估计为:
 
     
      
       
        
         P
        
        
         (
        
        
         年
        
        
         龄
        
        
         ≤
        
        
         30
        
        
         ∣
        
        
         购
        
        
         买
        
        
         计
        
        
         算
        
        
         机
        
        
         =
        
        
         是
        
        
         )
        
        
         =
        
        
         
          
           2
          
          
           +
          
          
           1
          
         
         
          
           9
          
          
           +
          
          
           3
          
         
        
        
         =
        
        
         0.25
        
       
       
        P(年龄\le30|购买计算机=是)=\frac{2+1}{9+3}=0.25
       
      
     P(年龄≤30∣购买计算机=是)=9+32+1=0.25
 
    
     
      
       
        P
       
       
        (
       
       
        信
       
       
        誉
       
       
        =
       
       
        低
       
       
        ∣
       
       
        购
       
       
        买
       
       
        计
       
       
        算
       
       
        机
       
       
        =
       
       
        是
       
       
        )
       
      
      
       P(信誉 = 低 | 购买计算机=是)
      
     
    P(信誉=低∣购买计算机=是)可以估计为:
 
     
      
       
        
         P
        
        
         (
        
        
         信
        
        
         誉
        
        
         =
        
        
         低
        
        
         ∣
        
        
         购
        
        
         买
        
        
         计
        
        
         算
        
        
         机
        
        
         =
        
        
         是
        
        
         )
        
        
         =
        
        
         
          
           0
          
          
           +
          
          
           1
          
         
         
          
           9
          
          
           +
          
          
           3
          
         
        
        
         =
        
        
         0.083
        
       
       
        P(信誉 = 低 | 购买计算机=是) = \frac{0+1}{9+3}=0.083
       
      
     P(信誉=低∣购买计算机=是)=9+30+1=0.083

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号