5.4算法-分类-朴素贝叶斯

本文详细介绍了朴素贝叶斯算法的基本思想、公式和应用场景,包括高斯模型、多项式模型和伯努利模型。通过一个病人分类的例子阐述了算法原理,并给出了基于多项式模型的Python代码实现,用于MNIST数据集的分类任务。

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

https://blog.youkuaiyun.com/fuqiuai/article/details/79458943

 

 

NaïveBayes算法,又叫朴素贝叶斯算法,朴素:特征条件独立;贝叶斯:基于贝叶斯定理。属于监督学习的生成模型,实现简单,没有迭代,并有坚实的数学理论(即贝叶斯定理)作为支撑。在大量样本下会有较好的表现,不适用于输入向量的特征条件有关联的场景。

 

基本思想

 

(1)病人分类的例子

 

某个医院早上收了六个门诊病人,如下表:

 

症状  职业   疾病

——————————————————

打喷嚏 护士   感冒

打喷嚏 农夫   过敏

头痛  建筑工人 脑震荡

头痛  建筑工人 感冒

打喷嚏 教师   感冒

头痛  教师   脑震荡

现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他患上感冒的概率有多大?

根据贝叶斯定理:

 

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

可得

 

P(感冒|打喷嚏x建筑工人) 

= P(打喷嚏x建筑工人|感冒) x P(感冒) / P(打喷嚏x建筑工人)

 

假定”打喷嚏”和”建筑工人”这两个特征是独立的,因此,上面的等式就变成了

 

P(感冒|打喷嚏x建筑工人) 

= P(打喷嚏|感冒) x P(建筑工人|感冒) x P(感冒) / P(打喷嚏) x P(建筑工人)

 

这是可以计算的。

 

P(感冒|打喷嚏x建筑工人) 

= 0.66 x 0.33 x 0.5 / 0.5 x 0.33

= 0.66

 

因此,这个打喷嚏的建筑工人,有66%的概率是得了感冒。同理,可以计算这个病人患上过敏或脑震荡的概率。比较这几个概率,就可以知道他最可能得什么病。

 

这就是贝叶斯分类器的基本方法:在统计资料的基础上,依据某些特征,计算各个类别的概率,从而实现分类。

 

(2)朴素贝叶斯分类器的公式

 

假设某个体有n项特征(Feature),分别为F1、F2、…、Fn。现有m个类别(Category),分别为C1、C2、…、Cm。贝叶斯分类器就是计算出概率最大的那个分类,也就是求下面这个算式的最大值:

 

P(C|F1F2...Fn) = P(F1F2...Fn|C)P(C) / P(F1F2...Fn)

1

由于 P(F1F2…Fn) 对于所有的类别都是相同的,可以省略,问题就变成了求

 

P(F1F2...Fn|C)P(C)

1

的最大值。 

朴素贝叶斯分类器则是更进一步,假设所有特征都彼此独立,因此

 

P(F1F2...Fn|C)P(C) = P(F1|C)P(F2|C) ... P(Fn|C)P(C)

1

上式等号右边的每一项,都可以从统计资料中得到,由此就可以计算出每个类别对应的概率,从而找出最大概率的那个类。

虽然”所有特征彼此独立”这个假设,在现实中不太可能成立,但是它可以大大简化计算,而且有研究表明对分类结果的准确性影响不大。

 

(3)拉普拉斯平滑(Laplace smoothing)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值