朴素贝叶斯学习算法原理

要了解朴素贝叶斯学习算法,我们先从贝叶斯决策论说起。

贝叶斯决策论

贝叶斯决策论是一种在概率框架下实施决策的基本方法,通过概率计算来训练学习模型,其基本思想非常简单。
具体来说,假设有N种可能的类别标记,即 Y = { c 1 , c 2 , c 3 , , c N } λ i j 是一个将真实标记为 c j 的样本误标记为 c i 所产生的损失,基于后验概率 P ( c i | x ) 可获得将样本 x 分类为 c i 所产生的期望损失,即在样本 x 上产生的“风险条件”:

R ( c i | x ) = j = 1 N λ i j P ( c j | x )

我们的任务是,找到一个判断准则 h : X Y 以最小化总体风险。


贝叶斯判断准则:为最小化总体风险,只需要在每个样本上选择那个能使条件风险 R ( c | x ) 最小的标记类别,即

h ( x ) = a r g m i n c Y R ( c | x )
此时,称 h 为贝叶斯最优分类器。


若目标是最小化分类错误率,则误判损失 λ i j 可写为:

λ i j = { 0 i = j 1 i j

此时,条件风险为 R ( c | x ) = 1 P ( c | x ) ,于是,最小化分类错误率的贝叶斯最优分类器为
h ( x ) = a r g m a x c Y P ( c | x )

即对每个样本 x ,选择能使后验概率 P ( c | x ) 最大的标记类别。
基于贝叶斯定理, P ( c | x ) 可写为
P ( c | x ) = P ( x , c ) P ( x ) = P ( c ) P ( x | c ) P ( x )
其中, P ( c ) 是类先验概率, P ( x | c ) 是样本 x 相对于类标记c的类条件概率,或称为“似然”, P ( x ) 是用于归一化的“证据”因子。此时,则有
h ( x ) = a r g m a x c Y P ( c | x ) = a r g m a x c Y P ( c ) P ( x | c ) P ( x )

可以看出,对于一个特定的样本 x ,其分类结果只与 P ( c ) P ( x | c ) 有关,此时问题便转化为通过训练集求出 P ( c ) P ( x | c ) ,不同的求法便产生了不同的学习算法。

朴素贝叶斯

  • 对于类先验概率 P ( c ) ,直观上可以通过
    P ( c ) = | D c | | D |
    来求。
  • 对于样本 x 的类条件概率 P ( x | c ) ,由于类条件概率 P ( x | c ) 是所有属性上的联合概率,当样本维度增加时,计算复杂度呈指数级增长,同时也难以从有限的训练样本直接估计得出。

因此,朴素贝叶斯分类器采用属性条件独立性假设:对已知类别,假设所有属性相互独立。在此假设下,

P ( c | x = P ( c ) P ( x | c ) P x = P ( c ) P ( x ) i = 1 d P ( x i | c )
其中,d为属性数目, x i x 在第i个属性上的取值。
此时,朴素贝叶斯分类器的表达式为
h n b ( x ) = a r g m a x c Y P ( c ) i = 1 d P ( x i | c )
显然,朴素贝叶斯分类器的训练过程就是基于训练集D来估计先验概率P(c),并为每个属性估计条件概率 P ( x i | c )

注意事项

  • 在具体问题中,很有可能出现 P ( x i | c ) = 0 的情形,此时,便得到 P ( c ) i = 1 d P ( x i | c ) = 0 ,显然,属性 x i 中未出现的属性值抹去了其他属性携带的信息,这是不合理的,因此常用“拉普拉斯修正”进行改进。令N表示训练集D中可能的类别数, N i 表示第i个属性可能的取值数,则有
    P ^ ( c ) = | D c | + 1 | D | + N
    P ^ ( x i | c ) = | D c , x i | + 1 | D c | + N i
    “拉普拉斯修正”实质上假设了属性值与类别均匀分布。
  • 可以看到,结果是一个连乘公式,且对于任意 1 i d ,均有 P ( x i | c ) ( 0 , 1 ] ,当 d 较大时,结果可能出现溢出。因此,常对其取log进行运算,公式变为
    log P ( c | x ) = log P ( c ) l o g P ( x ) + i = 1 d log P ( x i | c )

    h n b ( x ) = a r g m a x c Y log P ( c ) + i = 1 d log P ( x i | c )

理论结合实践。为此,我编写了朴素贝叶斯方法的垃圾邮件分类器,适合初学者使用。

猜你喜欢

转载自blog.csdn.net/hey___man/article/details/79407850