朴素贝叶斯定理:如何让计算机学会自动分类

本文是极客时间“程序员的数学基础课”学习笔记整理

如何判断一个水果属于苹果还是西瓜?

为了对水果进行分类,我们需要提取水果相关的属性,比如形状、大小、纹理等,如下表所示。

水果名称

形状

外观颜色

外观纹理

重量

握感

口感

苹果

不规则圆

红色

200.45

较硬

酸甜

甜橙

圆形

橙色

150.92

较软

西瓜

椭圆形

绿色

条纹

60000.88

较硬

计算机无法理解水果的颜色和形状,我们需要对齐进行转换,转换成计算机能够理解的语言,如下表所示

水果名称

形状

不规则圆:1

圆形:2

椭圆:3

外观颜色

红色 :1

橙色:2

绿色:3

外观纹理

无:1

条纹:2

重量

小于200g:1

200克和500克之间:2

大于500克:3

握感

较硬:1

较软:2

口感

酸甜:1

甜:2

苹果

1

1

1

2

1

1

甜橙

2

2

1

1

2

2

西瓜

3

3

2

3

1

2

由表可知,对于连续的重量,我们做了离散化处理。

三个数据做训练样本,量太少,我们扩充到十个数据。

水果名称

形状

不规则圆:1

圆形:2

椭圆:3

外观颜色

红色 :1

橙色:2

绿色:3

外观纹理

无:1

条纹:2

重量

小于200g:1

200克和500克之间:2

大于500克:3

握感

较硬:1

较软:2

口感

酸甜:1

甜:2

苹果a

1

1

1

2

1

1

苹果b

1

1

1

1

1

1

苹果c

2

3

1

1

2

1

甜橙a

2

2

1

1

2

2

甜橙b

2

2

1

2

2

2

甜橙c

1

2

1

2

1

1

西瓜a

3

3

2

3

1

2

西瓜b

3

3

2

3

1

1

西瓜c

3

3

2

3

1

2

西瓜d

1

3

2

3

2

2

朴素贝叶斯的核心思想

我们手上有一个新的水果,他有形状、颜色、纹理、重量等属性,怎么判断它属于哪种类型的水果呢?引入今天的贝叶斯公式。

贝叶斯的核心思想就是利用先验概率和条件概览来预测后验概率,具体到本例的水果分类,我们可以得到如下公式。

其中f表示某一属性的取值,c表示分类。公式左边的P(c|f)  在属性值给定的情况下,预测属于分类c的概率。公式右边是根据训练样本计算。其中p(f|c)   训练样本中,分类为c中出现属性f的概率,P(c)  训练样本中分类c出现的概率,p(f)为 训练样本中 属性f出现的概率。

上文中的公式,是针对单个属性的,真实的水果分类是多属性的,朴素贝叶斯公式有一个假设前提:数据对象的不同属性对其分类的影响是相互独立的。如果数据对象o中同时出现属性fi和fj,则对象o属于分类c的概率

我们可以用这十个数据,建立朴素贝叶斯分类模型了。

苹果分类有三个实例,对于形状而言,出现2次不规则圆、1次圆形和0次椭圆,各自的统计概率为0.67、0.33和0.00,这些概率为条件概率,依次类推,我们可以计算其他属性的条件概率,如下表。

水果名称\特征

形状

不规则圆:1

圆形:2

椭圆:3

外观颜色

红色 :1

橙色:2

绿色:3

外观纹理

无:1

条纹:2

重量

小于200g:1

200克和500克之间:2

大于500克:3

握感

较硬:1

较软:2

口感

酸甜:1

甜:2

苹果

1: 0.67

2:  0.33

3:  0.00

1: 0.67

2: 0.00

3: 0.33

1: 1.00

2: 0.00

 

1: 0.67

2: 0.33

3: 0.00

1: 0.67

2: 0.33

1: 1.00

2: 0.00

甜橙

1: 0.33

2: 0 .67

3: 0.00

1: 0.00

2: 1.00

3: 0.00

1: 1.00

2: 0.00

 

1: 0.33

2: 0.67

3: 0.00

1: 0.33

2: 0.67

1: 0.33

2: 0.67

西瓜

1: 0.25

2: 0.00

3: 0.75

1:  0.00

2:  0.00

3: 1.00

1: 0.00

2: 1.00

1: 000

2: 0.00

3: 1.00

1: 0.75

2: 0.25

1: 0.25

2: 0.75

总共

1: 0.40

2: 0.30

3: 0.30

1: 0.20

2: 0.30

3: 0.50

1: 0.60

2: 0.40

1: 030

2: 0.30

3: 0.40

1: 0.60

2: 0.40

1: 0.50

2: 0.50

对于上表中出现的概率0,在做贝叶斯乘积时可能会导致整个结果为0,为了避免此类情况,我们用一个很小的结果(如0.01)来代表0,这种处理技巧称为平滑处理(Smoothing)

有了上述模型,我们可以用来预测新的水果了。假如我们现在有一个新的水果,它的形状是原形,口感是甜的,根据朴素贝叶斯定理,它属于苹果、甜橙和西瓜的概率的计算公式如下所示。

比较这三个数值,0.00198<0.00798<0.26934,所以可以得出结论,该水果属于甜橙的可能性是最大的。

由上文计算结果可以看出,计算出来的概率都非常小,在物品属性非常多的时候,这个乘积可能小到计算机无法处理的地步,因此在实际应用中,我们一般采用数学变换的方式来处理(比如概率取log转换为绝对值大于1的负数)。

总结一下用朴素贝叶斯进行分类的步骤:

  • 准备数据,收集数据,转换为计算机可以理解的形式

  • 建立模型,基于样本训练贝叶斯模型

  • 分类新数据,对于新分类,计算其属于分类的概率,这个过程称为预测。

朴素贝叶斯VS其他分类算法

  • 和KNN相比,朴素贝叶斯需要更多的时间建立模型,但是对新分类进行预测时,效果好,速度快

  • 和决策树相比,朴素贝叶斯不能提供一套易于人类理解的规则,但是可以提供决策树无法支持的模糊分类

  • 和SVN支持向量机相比,朴素贝叶斯无法直接支持连续值的输入

因此朴素贝叶斯适用于待分类对象的属性值大部分都是离散的(或者很容易转化为离散的)、需要支持模糊分类,并且需要快速可靠的实时分类的场景。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值