机器学习之朴素贝叶斯分类器

朴素贝叶斯分类器

贝叶斯决策论是概率框架下实施决策的基本方法

贝叶斯公式

P ( B ∣ A ) = P ( A ∣ B ) P ( B ) P ( A ) P(B|A)=\dfrac{P(A|B)P(B)}{P(A)} P(BA)=P(A)P(AB)P(B)

对于贝叶斯公式来讲,我们是通过求出先验概率 P ( B ) P(B) P(B) 和类条件概率 P ( A ∣ B ) P(A|B) P(AB)来确定后验概率 P ( B ∣ A ) P(B|A) P(BA) ,通过估计后验概率的大小来判断事件所属的类别。

举个例子:假设一个班有2/3的学生是男生,有1/3的学生是女生,男生中有3/5的人戴眼镜,女生中有1/5的人戴眼镜。现有一学生戴眼镜,判断此学生是男生还是女生?

由公式可得:

先验概率: P ( 男 ) = 2 / 3 P(男)=2/3 P()=2/3 P ( 女 ) = 1 / 3 P(女)=1/3 P()=1/3

类条件概率: P ( 戴 ∣ 男 ) = 3 / 5 P(戴|男)=3/5 P()=3/5 P ( 戴 ∣ 女 ) = 1 / 5 P(戴|女)=1/5 P()=1/5

P ( 戴 ) = P ( 男 ) P ( 戴 ∣ 男 ) + P ( 女 ) P ( 戴 ∣ 女 ) = 2 / 3 ∗ 3 / 5 + 1 / 3 ∗ 1 / 5 = 7 / 15 \begin{aligned}P(戴)&=P(男)P(戴|男)+P(女)P(戴|女)\\&=2/3*3/5+1/3*1/5\\&=7/15\end{aligned} P()=P()P()+P()P()=2/33/5+1/31/5=7/15

后验概率:
P ( 男 ∣ 戴 ) = P ( 男 ) P ( 戴 ∣ 男 ) P ( 戴 ) = 2 / 3 ∗ 3 / 5 7 / 15 = 6 / 7 \begin{aligned}P(男|戴)=\dfrac{P(男)P(戴|男)}{P{(戴)}}&=\dfrac{2/3*3/5}{7/15}\\&=6/7\end{aligned} P()=P()P()P()=7/152/33/5=6/7

P ( 女 ∣ 戴 ) = P ( 女 ) P ( 戴 ∣ 女 ) P ( 戴 ) = 1 / 3 ∗ 1 / 5 7 / 15 = 1 / 7 \begin{aligned}P(女|戴)=\dfrac{P(女)P(戴|女)}{P{(戴)}}&=\dfrac{1/3*1/5}{7/15}\\&=1/7\end{aligned} P()=P()P()P()=7/151/31/5=1/7

因为 P ( 男 ∣ 戴 ) > P ( 女 ∣ 戴 ) P(男|戴)>P(女|戴) P()>P() 故判断此学生为男生

朴素贝叶斯分类

运用贝叶斯思想对数据集进行分类时

换成分类任务的表达式:

P ( 类 别 ∣ 特 征 ) = P ( 特 征 ∣ 类 别 ) P ( 类 别 ) P ( 特 征 ) P(类别|特征)=\dfrac{P(特征|类别)P(类别)}{P(特征)} P()=P()P()P()

假设有一个训练集D:

有N种可能的类别: γ = { c 1 , c 2 , . . . , c N } \gamma=\{c_1,c_2,...,c_N\} γ={c1,c2,...,cN}

每个样本有 d d d种特征: X = { x 1 , x 2 , . . . , x d } X=\{x_1,x_2,...,x_d\} X={x1,x2,...,xd}

则对于样本x,我们有:

P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) P(c|x)=\dfrac{P(c)P(x|c)}{{P(x)}} P(cx)=P(x)P(c)P(xc)

对于先验概率 P ( c ) P(c) P(c),当有充足的独立同分布的样本时,根据大数定律,可以对先验概率进行估计,令 D c D_c Dc为训练集D中第c类样本的集合。则:

P ( c ) = ∣ D c ∣ ∣ D ∣ P(c)=\dfrac{|D_c|}{|D|} P(c)=DDc

对于类条件概率 P ( x ∣ c ) P(x|c) P(xc) ,即 P ( x 1 , x 2 , . . . , x d ∣ c ) P(x_1,x_2,...,x_d|c) P(x1,x2,...,xdc) 是在类别c下所有特征的联合概率分布,也就是说当每个特征有二值时,样本空间有 2 d 2^d 2d 种可能,远大于已有训练集,不能直接在训练集中估计。于是朴素贝叶斯的思想是,假设每个特征都独立同分布则:

P ( x ∣ c ) = Π i = 1 d P ( x i ∣ c ) P(x|c)=\Pi_{i=1}^dP(x_i|c) P(xc)=Πi=1dP(xic) x i x_i xi表示在样本x上第 i 个特征的取值。

在训练集上:

P ( x i ∣ c ) = ∣ D c x i ∣ ∣ D c ∣ P(x_i|c)=\dfrac{|D_{cx_i}|}{|D_c|} P(xic)=DcDcxi D c x i 表 示 在 第 c 类 下 第 i 个 特 征 取 x i 的 样 本 D_{cx_i} 表示在第c类下第 i 个特征取x_i的样本 Dcxicixi

此时朴素贝叶斯公式表现为:

P ( x ∣ c ) = P ( c ) P ( x ) Π i = 1 d P ( x i ∣ c ) = P ( c ) P ( x ) Π i = 1 d ∣ D c x i ∣ ∣ D c ∣ \begin{aligned}P(x|c)&=\dfrac{P(c)}{P(x)}\Pi_{i=1}^dP(x_i|c)\\&=\dfrac{P(c)}{P(x)}\Pi_{i=1}^d\dfrac{|D_{cx_i}|}{|D_c|}\end{aligned} P(xc)=P(x)P(c)Πi=1dP(xic)=P(x)P(c)Πi=1dDcDcxi

由于类别 c 的取值于 P ( x ) P(x) P(x)无关,于是:

P ( x ∣ c ) ∝ P ( c ) P ( x ∣ c ) P(x|c)\propto P(c)P(x|c) P(xc)P(c)P(xc)

因此朴素贝叶斯的判定准则有:

h n b ( x ) = arg ⁡ c ∈ γ P ( c ) Π i = 1 d P ( x i ∣ c ) h_{nb}(x)=\arg\limits_{c\in\gamma}P(c)\Pi_{i=1}^dP(x_i|c) hnb(x)=cγargP(c)Πi=1dP(xic)

也就是我们要找到一个 c 使样本的后验概率最大,我们就将这个样本判定为 c 类。

在实际情况中,会出现某个特征值与训练集中的某个类同时出现过,这样会使类条件概率为0。为避免其他特征值被未在训练集中出现的特征“抹去”。我们在估计概率值时通常要进行平滑处理。

修正为:

P ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N P(c)=\dfrac{|D_c|+1}{|D|+N} P(c)=D+NDc+1

P ( x i ∣ c ) = ∣ D c x i ∣ + 1 ∣ D ∣ + N i P(x_i|c)=\dfrac{|D_{cx_i}|+1}{|D|+N_i} P(xic)=D+NiDcxi+1

N N N表示整个训练集中可能的特征数, N i N_i Ni表示第 i 个特征可能的取值数。

参考:周志华《机器学习》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值