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

本文深入浅出地介绍了朴素贝叶斯分类器的工作原理,包括贝叶斯决策论的基础,贝叶斯公式的应用,以及如何使用朴素贝叶斯进行分类任务。通过实例解释了先验概率、类条件概率和后验概率的概念,并讨论了特征独立性假设和平滑处理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

朴素贝叶斯分类器

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

贝叶斯公式

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/3P(男)=2/3P()=2/3 P(女)=1/3P(女)=1/3P()=1/3

类条件概率:P(戴∣男)=3/5P(戴|男)=3/5P()=3/5 P(戴∣女)=1/5P(戴|女)=1/5P()=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/57/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/57/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种可能的类别:γ={c1,c2,...,cN}\gamma=\{c_1,c_2,...,c_N\}γ={c1,c2,...,cN}

每个样本有ddd种特征:X={x1,x2,...,xd}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),当有充足的独立同分布的样本时,根据大数定律,可以对先验概率进行估计,令DcD_cDc为训练集D中第c类样本的集合。则:

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

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

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

在训练集上:

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

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

P(x∣c)=P(c)P(x)Πi=1dP(xi∣c)=P(c)P(x)Πi=1d∣Dcxi∣∣Dc∣\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)

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

hnb(x)=arg⁡c∈γP(c)Πi=1dP(xi∣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)=∣Dc∣+1∣D∣+NP(c)=\dfrac{|D_c|+1}{|D|+N}P(c)=D+NDc+1

P(xi∣c)=∣Dcxi∣+1∣D∣+NiP(x_i|c)=\dfrac{|D_{cx_i}|+1}{|D|+N_i}P(xic)=D+NiDcxi+1

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值