朴素贝叶斯(二)模型、推导、拉普拉斯平滑

1 朴素贝叶斯模型

下面我们先来看变量表示

  • 变量表示
    • 输入变量表示为X–m维向量的集合(m个特征);
    • 输出空间为类标记集合表示为 Y = { c 1 . c 2 , . . . , c K } Y=\{c_1.c_2,...,c_K\} ;
    • 训练集为 { ( x 1 , y 1 ) . ( x 2 , y 2 ) , . . . , ( x n , y n ) } \{(x_1,y_1).(x_2,y_2),...,(x_n,y_n)\} (n个样本),特征向量 x i x_i (第i个样本)可以表示为 x i = ( x i 1 , x i 2 , . . . , x i m ) T x_i=(x_i^1,x_i^2,...,x_i^m)^T ,其中 x i j x_i^j 表示为第i个输入变量的第j个特征。

接着介绍几个概念。

  • 先验概率分布
    P ( Y = c k ) , k = 1 , 2 , . . . , K P(Y=c_k),k=1,2,...,K
  • 条件概率分布
    P ( X = x Y = c k ) = P ( X 1 = x 1 , X 2 = x 2 , . . . , X m = x m Y = c k ) , k = 1 , 2 , . . . , K P(X=x|Y=c_k)=P(X^1=x^1,X^2=x^2,...,X^m=x^m|Y=c_k),k=1,2,...,K
    • 如果 x j x^j 可取值 S j S_j 个,其中 j = 1 , 2 , . . , m j=1,2,..,m Y可取值有K个,那么参数个数为 K j = 1 m S j K\prod_{j=1}^mS^j .

于是学习到联合概率分布 P(X,Y)。

朴素贝叶斯对条件概率分布做了特征条件独立假设,这样简化了条件概率分布的计算,下面我们来看该假设。

  • 条件独立假设:用于分类的特征在类确定的条件下是条件独立的。
    P ( X = x Y = c k ) = P ( X 1 = x 1 , X 2 = x 2 , . . . , X m = x m Y = c k ) = j = 1 m P ( X j = x j Y = c k ) P(X=x|Y=c_k)=P(X^1=x^1,X^2=x^2,...,X^m=x^m|Y=c_k)=\prod{j=1}^{m}P(X^j=x^j|Y=c_k)
    • 该假设优点是计算简单,缺点是分类准确率降低。
       
  • 朴素贝叶斯分类时,对给定的输入x,通过学习得到的模型计算后验概率分布 P ( Y = c k X = x ) P(Y=c_k|X=x) ,将后验概率最大的类作为x的输出。
    下面我们首先来看后验概率分布。
    • 后验概率分布(贝叶斯定理,参考我的上篇文章朴素贝叶斯(一)知识准备—条件概率、全概率、贝叶斯公式
      P ( Y = c k X = x ) = P ( Y = c k , X = x ) P ( X = x ) = P ( Y = c k ) P ( X = x Y = c k ) k P ( Y = c k ) P ( X = x Y = c k ) P(Y=c_k|X=x)=\frac{P(Y=c_k,X=x)}{P(X=x)}=\frac{P(Y=c_k)P(X=x|Y=c_k)}{\sum_kP(Y=c_k){P(X=x|Y=c_k)}}
      将条件独立假设公式带入上式可得:
      P ( Y = c k X = x ) = P ( Y = c k , X = x ) j P ( X j = x j Y = c k ) k P ( Y = c k ) j P ( X j = x j Y = c k ) P(Y=c_k|X=x)=\frac{P(Y=c_k,X=x){\prod_jP(X^j=x^j|Y=c_k)}}{\sum_kP(Y=c_k){\prod_jP(X^j=x^j|Y=c_k)}}
      其中k=1,2,…,k,j=1,2,…,m.
      于是可得到下列的朴素贝叶斯分类器
  • 朴素贝叶斯分类器
    y = f ( x ) = a r g m a x c k P ( Y = c k , X = x ) 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,X=x){\prod_jP(X^j=x^j|Y=c_k)}}{\sum_kP(Y=c_k){\prod_jP(X^j=x^j|Y=c_k)}}
    上式中,对所有的 c k c_k 来说,分母都是相同的,所以
    y = f ( x ) = a r g m a x c k P ( Y = c k , X = x ) j P ( X j = x j Y = c k ) y=f(x)=arg\,max_{c_k}{P(Y=c_k,X=x){\prod_jP(X^j=x^j|Y=c_k)}}

下面来说模型的学习即参数估计。

2 朴素贝叶斯的参数估计

        对于这种给定模型,数据,求参数的我们仍然使用极大似然估计。在这里也就是对先验概率和条件概率进行估计。

  • 先验概率极大似然估计 P ( Y = c k ) = n P ( Y i = c k ) I ( Y i = c k ) = i = 1 n I ( Y i = c k ) N P(Y=c_k)=nP(Y_i=c_k)^{I(Y_i=c_k)}=\frac{\sum_{i=1}^nI(Y_i=c_k)}{N} ,其中k=1,2,…,K。 I ( Y i = c k ) I(Y_i=c_k) 是指示函数, I ( t r u e ) = 1 I(true)=1 , I ( f a l s e ) = 0 I(false)=0
  • 条件概率极大似然估计:设第j个特征 x j x^j 可能取值的集合为 { a j 1 , a j 2 , . . . , a j s j } \{a_{j1},a_{j2},...,{a_{js_j}}\} ,条件概率 P ( X j = x j = a j l Y = c k ) P(X^j=x^j=a_{jl}|Y=c_k) 的极大似然估计是
    P ( X j = 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=x^j=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^nI(x_i^j=a_{jl},Y_i=c_k)}{\sum_{i=1}^nI(Y_i=c_k)}
    其中, x i j x_i^j 代表第i个样本的第j个特征; a j l a_{jl} 是第j个特征可能取得第 l l 个值。

3 拉普拉斯平滑

        用极大似然估计学得的朴素贝叶斯模型,可能会出现个问题,那就是若某个属性值在训练集中和某个类别没有一起出现过,这样会抹掉其它的属性信息,因为该样本的类条件概率被计算为0。因此在估计概率值时,常常用进行平滑处理,拉普拉斯修正就是其中的一种经典方法,具体计算方法如下:
                                                              在这里插入图片描述

发布了42 篇原创文章 · 获赞 28 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/xiaoxiaoliluo917/article/details/103037466