朴素贝叶斯的算法

1.朴素贝叶斯的算法

朴素贝叶斯(Naive Bayes)是一种简单经典的分类算法,它的经典应用案例为人所熟知:文本分类(如垃圾邮件过滤)

1.1 贝叶斯定理

条件概率:

P(A|B)表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。其基本求解公式为:P(A|B)=P(AB)/P(B)
贝叶斯定理便是基于条件概率,通过P(A|B)来求P(B|A):

P(B|A)=P(A|B)P(B)P(A)

另外:上式中的分母P(A),可以根据全概率公式分解为:
P(A)=∑ni=1P(Bi)P(A|Bi)

1.2 特征条件独立假设

特征条件假设:假设每个特征之间没有联系
给定训练数据集(X,Y),其中每个样本x都包括n维特征,即x=(x1,x2,x3,…,xn),类标记集合含有k种类别,即y=(y1,y2,…,yk)。

如果现在来了一个新样本x,我们要怎么判断它的类别?从概率的角度来看,这个问题就是给定x,它属于哪个类别的概率最大。那么问题就转化为求解P(y1|x),P(y2|x),…,P(yk|x)中最大的那个,即求后验概率最大的输出:argmaxykP(yk|x)
那P(yk|x)怎么求解?答案就是贝叶斯定理:

P(yk|x)=P(x|yk)P(yk)P(x)
根据全概率公式,可以进一步地分解上式中的分母
在这里插入图片描述
而条件概率P(x|yk)=P(x1,x2,…,xn|yk),它的参数规模是指数数量级别的,假设第i维特征xi可取值的个数有Si个,类别取值个数为k个,那么参数个数为:
在这里插入图片描述

这显然不可行。针对这个问题,朴素贝叶斯算法对条件概率分布作出了独立性的假设,通俗地讲就是说假设各个维度的特征x1,x2,…,xn互相独立,在这个假设的前提上,条件概率可以转化为:

在这里插入图片描述
我们继续上面关于P(yk|x)的推导,将【公式2】代入【公式1】得到:
在这里插入图片描述
于是朴素贝叶斯分类器可表示为:
在这里插入图片描述
因为对所有的yk,上式中的分母的值都是一样的,所以可以忽略分母部分,朴素贝叶斯分类器最终表示为:
在这里插入图片描述

2. 三种常见的模型

2.1 多项式模型

当特征是离散的时候,使用多项式模型。多项式模型在计算先验概率P(yk)和条件概率P(xi|yk)时,会做一些平滑处理,具体公式为:
在这里插入图片描述
N是总的样本个数,k是总的类别个数,Nyk是类别为yk的样本个数,α是平滑值。
在这里插入图片描述
Nyk是类别为yk的样本个数,n是特征的维数,Nyk,xi是类别为yk的样本中,第i维特征的值是xi的样本个数,α是平滑值。

当α=1时,称作Laplace平滑,当0<α<1时,称作Lidstone平滑,α=0时不做平滑。

如果不做平滑,当某一维特征的值xi没在训练样本中出现过时,会导致P(xi|yk)=0,从而导致后验概率为0。加上平滑就可以克服这个问题。

2.1.1 多项式模型实例

有如下训练数据,15个样本,2维特征X1,X2,2种类别-1,1。给定测试样本x=(2,S)T,判断其类别。

在这里插入图片描述

解答如下:

运用多项式模型,令α=1

计算先验概率
在这里插入图片描述

N=15(样本个数) k=2(类别个数(Y=1或Y=-1))Nyk(是类别为yk的样本个数如:类别为Y=1的样本个数 9个 即Ny1=9 类别为 Y=-1的样本个数为6个即Ny-1=6 ) α=1
在这里插入图片描述

计算各种条件概率
在这里插入图片描述

在这里插入图片描述
对于给定的x=(2,S)T,计算:
在这里插入图片描述

2.2 高斯模型

当特征是连续变量的时候,运用多项式模型就会导致很多P(xi|yk)=0(不做平滑的情况下),此时即使做平滑,所得到的条件概率也难以描述真实情况。所以处理连续的特征变量,应该采用高斯模型。

2.2.1 通过一个例子来说明:

在这里插入图片描述
已知某人身高6英尺、体重130磅,脚掌8英寸,请问该人是男是女?
根据朴素贝叶斯分类器,计算下面这个式子的值。
P(身高|性别) x P(体重|性别) x P(脚掌|性别) x P(性别)

这里的困难在于,由于身高、体重、脚掌都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无法分成区间计算。怎么办?
这时,可以假设男性和女性的身高、体重、脚掌都是正态分布,通过样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以把值代入,算出某一点的密度函数的值。
比如,男性的身高是均值5.855、方差0.035的正态分布。所以,男性的身高为6英尺的概率的相对值等于1.5789(大于1并没有关系,因为这里是密度函数的值,只用来反映各个值的相对可能性)。

在这里插入图片描述
对于脚掌和体重同样可以计算其均值与方差。有了这些数据以后,就可以计算性别的分类了。
P(身高=6|男) x P(体重=130|男) x P(脚掌=8|男) x P(男)
    = 6.1984 x e-9
P(身高=6|女) x P(体重=130|女) x P(脚掌=8|女) x P(女)
    = 5.3778 x e-4
    
可以看到ÿ

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值